匿名型を選択しています。次のように、プロパティの名前とそのタイプを一致させることによってのみ、このタイプの別のオブジェクトを追加できます。
var values = new[]{ new Options{value = 666, id = 5}} //array to demo purposes
.Where(i => i.id == 5)
.Select(i => new {
value = i.value.ToString()
})
.ToList();
values.Add(new {value = "Select"});
values.Insert(0, new {value = "AddNew"});
匿名型の 3 つのオブジェクト ( type のvalues
1 つのプロパティ) が含まれるようになり、次のように出力できます。value
string
AddNew
666
Select
次のように、新しいカスタム クラスを作成し、それをSelect
プロジェクションで使用することを検討してください。
class MyCustomClass
{
public string Value { get; set; }
}
そして、このオブジェクトを作成しますSelect
List<MyCustomClass> values = new[]{ new Options{value = 666, id = 5}}
.Where(i => i.id == 5)
.Select(i => new MyCustomClass {
Value = i.value.ToString()
})
.ToList();
values.Add(new MyCustomClass { Value = "Select"});
values.Insert(0, new MyCustomClass { Value = "AddNew"});
リストは名前付きのタイプList<MyCustomClass>
になり、名前付きのクラスを使用して要素を追加および削除できるようになりました