2
class AgeClass
{
    string[] Names {get;set;}
    int Age {get;set;}
}

...

IEnumerable<AgeClass> myList = ...; // a few instances of AgeClass

今私は(myListから)取得したい

IEnumerable<KeyValuePair<string,int>> 

名前と年齢のペアで。これを簡単に行う方法は?

4

2 に答える 2

12
myList.SelectMany(
     x=> x.Names.Select(
          z => new KeyValuePair<string,int>(z,x.Age)));

linqがクエリを作成していることに注意する必要があります。このコレクションを列挙するたびに、の現在の状態に基づいて新しいコレクションが作成されmyListます。この効果を取り除く.ToList()には、この行の最後に追加するだけです。

于 2012-08-23T08:45:26.927 に答える
1

クエリlinq構文の使用:

var result = from el in myList
             from n in el.Names
               select new KeyValuePair<string, int>(n, el.Age);
于 2012-08-23T08:53:53.487 に答える