2011-07-20 1 views
2

私は日付のリストを持っている2番目のクラスのリストを持つクラスを持っています。トップレベルのクラスで日付のリスト全体を取得する最良の方法は何ですか?次を考える深い日付のリストのためのlinqのヘルプ

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; 

答えて

1

かなり簡単です。連続した配列を作成ここでインナーループ状

var tempDateList = Class2List.SelectMany(x => x.DateList).ToList(); 
  • SelectMany(x => x.DateList)本質的行い、(第一のクラスからDateListの全てを、第二のクラスからDateListの全て、など)
  • ToList()が作成しますコンクリートList<DateTime>
  • var tempDateListは完全に静的な型であり、式
  • から List<DateTime>を推定します
4
var tempDateList = Class2List.SelectMany(x => x.DateList()).ToList(); 

それはあなたが望むものであるため、ToListを忘れました。

関連する問題