2014-02-18 4 views
0

Я стараюсь быть кратким. Я не мог найти ответы в Интернете, хотя я уверен, что они есть, но я рассмотрел эти вопросы на SO и не нашли то, что я искал:Получить элемент в массиве в arraylist

compare-and-retrieve-elements-from-arraylist

getting-index-of-an-item-in-an-arraylist

getting-a-particular-arraylist-element

У меня есть ArrayList с несколькими массивами в них, каждый из которых является одномерным и имеет различное количество элементов (как строк, так и int). Как я могу получить доступ к элементам в ArrayList?

+0

Пожалуйста, удалите Список_массивов тег, если он не применяется. В то время как у C# есть класс под System.Collections, называемый ArrayList, тег явно ссылается на Java, поэтому я не уверен, что я должен его использовать. –

+0

Какие типы элементов вы хотите получить? все элементы внутри одномерных массивов? –

+0

ArrayList содержит списки массивов. Эти массивы имеют различное количество элементов в них. Элементы любого из этих массивов могут быть либо строками, либо целыми числами и могут отображаться в разных конфигурациях. –

ответ

0

Вы можете использовать OfType и SelectMany, например, вы можете получить все string и integer значения внутри одномерных массивов как это:

ArrayList arr = new ArrayList(); 
arr.Add(new []{ 1, 2, 3, 4, 5}); 
arr.Add(new [] {"asdas", "asdsa"}); 
var stringValues = arr.OfType<Array>() 
         .SelectMany(x => x.OfType<string>()); // asdas asdsa 
var intValues = arr.OfType<Array>() 
        .SelectMany(x => x.OfType<string>()); // 1 2 3 4 5 
+0

Я не могу найти методы OfType или SelectMany. Я не знаком с Linq, но, похоже, (в соответствии с приведенным ниже ответом) это может быть то, о чем вы говорите. –

+0

@Stopforgettingmyaccounts ... какую версию .NET Framework вы используете? добавьте ссылку на System.Linq.dll, 'using System.Linq' –

+0

Оператор * using * работает, и я использую версию 4.0. Я не знал ссылок, добавленных в другие ссылки. Импорт Linq добавил OfType(), но не добавил SelectMany(). –

0

Linq имеет метод расширения SelectMany, который сделает его похожим на все дочерние списки являются один список

array.SelectMany (я => я);

Смежные вопросы