たった1つのLinqクエリで次のことをどのように達成できますか?それはより効率的ですか?
var o = new myObject {
Value =
(from value in g
select value.Value).FirstOrDefault(),
Id =
(from value in g
select value.Id).FirstOrDefault(),
... }
たった1つのLinqクエリで次のことをどのように達成できますか?それはより効率的ですか?
var o = new myObject {
Value =
(from value in g
select value.Value).FirstOrDefault(),
Id =
(from value in g
select value.Id).FirstOrDefault(),
... }
var result = (from value in g
select new
{
Value = value.Value,
ID = value.ID
}).FirstOrDefault();
編集:(編集された質問に基づく)
その場合、最初に値を取得してから、オブジェクトのコンストラクターでそれを使用します。選択には、条件またはwhere句が含まれる場合があります。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}