Линк помощь для глубокого списка дат - PullRequest
2 голосов
/ 20 июля 2011

У меня есть класс со списком 2-го класса, в котором есть список дат. Каков наилучший способ получить весь список дат в классе верхнего уровня?

Учитывая следующее:

Class 1 contains:

Public List<Class2> Class2List;

Class 2 contains:

List<DateTime> DateList;

Каков наилучший способ получить весь список дат в классе 1? Я знаю, что могу пройтись по каждому пункту класса 2, а затем получить список таким образом, но я надеюсь, что с LINQ есть более чистый путь.

List<DateTime> tempDateList;

Foreach (var Class2 in Class2List)
{


Foreach (var dt in Class2.DateList)
{
            tempDateList.Add(dt);
}

}

Return tempDateList;

Ответы [ 2 ]

4 голосов
/ 20 июля 2011
var tempDateList = Class2List.SelectMany(x => x.DateList()).ToList();

Забыл ToList, поскольку это то, что вы хотите.

1 голос
/ 20 июля 2011

Очень просто на самом деле;

var tempDateList = Class2List.SelectMany(x => x.DateList).ToList();
  • SelectMany(x => x.DateList) по существу работает здесь как внутренний цикл, создавая непрерывную последовательность (все DateList из первогокласс, все DateList из второго класса и т. д.)
  • ToList() создает конкретный List<DateTime> из этих данных
  • var tempDateList полностью статически типизирован и выводитList<DateTime> из выражения
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...