Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Попробуйте SelectMany()
var result = iList.SelectMany( i => i );
Если у вас есть List<List<int>> k
, вы можете сделать
List<int> flatList= k.SelectMany( v => v).ToList();
.ToArray()
? - Это косвенное - если вам нужно только повторить попытку, или если элементы могут измениться, значит, .ToArray()
определенно не то, что вы хотите. Но со статическими элементами, которые вы собираетесь перечислить несколько раз, .ToList()
или .ToArray()
даст улучшение производительности (за счет немного более высокой загрузки памяти, что, как правило, довольно неплохо).
– BrainSlugs83
19 December 2013 в 20:55
List<int>
, поэтому .ToList()
будет правильным выбором.
– MEMark
26 February 2014 в 18:48
Как это?
var iList = Method().SelectMany(n => n);
С синтаксисом запроса:
var values =
from inner in outer
from value in inner
select value;
SelectMany( i => i )
? Я видел, что этот синтаксис используется много, но кажется, что это дегенеративное использование функции выбора, поэтому я ожидал, что разработчики языка придумают синтаксис ярлыков специально для списков списков – Andy 9 February 2017 в 13:15