class AgeClass
{
string[] Names {get;set;}
int Age {get;set;}
}
...
IEnumerable<AgeClass> myList = ...; // a few instances of AgeClass
今私は(myListから)取得したい
IEnumerable<KeyValuePair<string,int>>
名前と年齢のペアで。これを簡単に行う方法は?
myList.SelectMany(
x=> x.Names.Select(
z => new KeyValuePair<string,int>(z,x.Age)));
linqがクエリを作成していることに注意する必要があります。このコレクションを列挙するたびに、の現在の状態に基づいて新しいコレクションが作成されmyList
ます。この効果を取り除く.ToList()
には、この行の最後に追加するだけです。
クエリlinq構文の使用:
var result = from el in myList
from n in el.Names
select new KeyValuePair<string, int>(n, el.Age);