また、(匿名型 apporachに加えて) を使用することもできますList<Tuple<string, string, string>>
:
var list= dictionary
.Select(kv => Tuple.Create(kv.Value.property1, kv.Value.property2, kv.Key))
.ToList();
foreach(var item in list)
{
Console.WriteLine("property1:{0 property2:{1} key:{2}"
, item.Item1
, item.Item2
, item.Item3);
}
匿名型に対する利点はTuple
、メソッドから簡単に を返すことができることです。
編集:3番目のオプション(私のお気に入り)は、どこかで宣言したクラスのインスタンスを作成することです。それが理想のやり方です。「その場で」クラスが必要だと思った理由がわかりません。
class someOtherClass
{
public string property1{ get; set; };
public string property2{ get; set; };
public string Key{ get; set; };
}
List<someOtherClass> objects = dictionary
.Select(kv => new someOtherClass(){
property1 = kv.Value.property1,
property2 = kv.Value.property2,
Key = kv.Key
})
.ToList();