選択()とSelectMany()作業は、1つ以上の結果値を生成するソース値に基づいています。
各ソースの選択()値は、結果値を生成します。したがって、全体的な結果は、コレクションの要素の同じ数を有するソースの集合です。対照的に、SelectMany()は、各ソースからのサブセットの値の系列を含む単一の全体的な結果を生成します。SelectManyは、各ソースの値列挙シーケンス値を返さなければならない()変換関数にパラメータとして渡されます。次いで、SelectMany()は、より大きな配列を作成するために、これらの一連の配列を列挙します。
プライベート クラスNamedEntity { 公共 NamedEntity(int型の ID、列名){ この .ID = ID。この .NAME = 名前; } 公共 int型の ID { 得ます。セット; } パブリック 文字列名前{ 得ます。セット; } } パブリックウィンドウ() { のInitializeComponent(); NamedEntity [] LIST1 = { 新しい NamedEntity(1、" アルバート")、新しい NamedEntity(2、" バーク")、新しい NamedEntity(3、" コナー" )}。 NamedEntity [] LIST2 = { 新しい NamedEntity(2、" アルバートはここであった"、)新しい NamedEntity(3、" バーク後半寝")、新しい NamedEntity(4、" ハッピー" )}。 IList <NamedEntity []>リットル= 新しいリスト<NamedEntity []>(){LIST1、LIST2}。 IList <NamedEntity>トークン= l.SelectMany(A => A).ToList(); VaRの GRP = tokens.GroupBy(A => a.ID)。 IList <NamedEntity>結果= grp.SelectMany(A => a.Take(1 ))ToListメソッド()。 }