Что такое LINQ'ий способ сделать это

Скажем, у меня есть список списков, и я хочу получить количество всех элементов во всех списках. Как бы вычислить счет с 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? (С# синтаксис, пожалуйста)

Ответ 1

Используйте метод Sum():

int summedCount = Lists.Sum(l => l.Count);

Ответ 2

Мне нравится @jrista ответить лучше, чем это, но вы могли бы сделать

int summedCount = Lists.SelectMany( x => x ).Count();

Просто хотел показать использование SelectMany, если вы хотите делать другие вещи с коллекцией коллекций.

Ответ 3

И если вы хотите быть фантазией

 int summedCount = Lists.Aggregate(0, (acc,list) => acc + list.Count);

Но первый ответ, безусловно, лучший.