Ответ 1
Используйте метод Sum()
:
int summedCount = Lists.Sum(l => l.Count);
Скажем, у меня есть список списков, и я хочу получить количество всех элементов во всех списках. Как бы вычислить счет с LINQ? (здесь просто любопытство)
Вот старый способ сделать это:
List<item>[] Lists = // (init the array of lists)
int count = 0;
foreach(List<item> list in Lists)
count+= list.Count;
return count;
Как вы LIN LINQify? (С# синтаксис, пожалуйста)
Используйте метод Sum()
:
int summedCount = Lists.Sum(l => l.Count);
Мне нравится @jrista ответить лучше, чем это, но вы могли бы сделать
int summedCount = Lists.SelectMany( x => x ).Count();
Просто хотел показать использование SelectMany, если вы хотите делать другие вещи с коллекцией коллекций.
И если вы хотите быть фантазией
int summedCount = Lists.Aggregate(0, (acc,list) => acc + list.Count);
Но первый ответ, безусловно, лучший.