次のラムダ式をよく使用します
MyList.Select(x => x.Id).ToList();
ラムダ式を使用して複数のプロパティを取得することは可能ですか?例:MyListのId
とName
?
次の構文を使用できることを知っています。
(from item in MyList
select new { item.Id, item.Name }).ToList();
ラムダ式を使用して同じことを行うことはできますか?
MyList.Select(x => new { x.Id, x.Name }).ToList();
興味のある機能はC#3です 匿名タイプ
次のコマンドを使用して、匿名タイプの新しいインスタンスを作成できます。
var v = new { Amount = 108, Message = "Hello", this.Text };
もちろん、これはラムダとしても機能します。
SomeThing.Select( () => new {X=1,Y=2} )
コードのどこにでも。また、プロパティ名も取得します。この場合、明示的に指定する必要はありません(私の例では、匿名タイプの3番目のメンバーは自動的にText
という名前になります。
残念ながら、これらを関数の非ジェネリックな戻り値の型として使用することはできません。
var sample = dbcontext.MyList
.Select(m => new Mylist{ sampleid=m.sampleid,item=m.item })
.ToList();