1

たった1つのLinqクエリで次のことをどのように達成できますか?それはより効率的ですか?

var o = new myObject {
    Value =
        (from value in g
        select value.Value).FirstOrDefault(),
    Id =
        (from value in g 
        select value.Id).FirstOrDefault(),
    ... }
4

1 に答える 1

2
var result = (from value in g 
             select new 
               {
              Value = value.Value,
              ID = value.ID
               }).FirstOrDefault();

編集:(編集された質問に基づく)
その場合、最初に値を取得してから、オブジェクトのコンストラクターでそれを使用します。選択には、条件またはw​​here句が含まれる場合があります。Linqでは異議を唱えると思いますが、パフォーマンスはそれほど重要ではないか、コレクションのサイズに依存する可能性がありますが、それでも最小限になると思います。それでも最善のアプローチは、最初にアイテムを選択してから、オブジェクトの初期化に使用することです。

var result = (from value in g 
             select new 
               {
              Value = value.Value,
              ID = value.ID
               }).FirstOrDefault();

var o = new myObject{Value = result.Value, ID = result.ID}
于 2012-04-30T09:26:11.220 に答える