如何只使用1个Linq查询来实现以下功能?它效率更高吗?
var o = new myObject {
Value =
(from value in g
select value.Value).FirstOrDefault(),
Id =
(from value in g
select value.Id).FirstOrDefault(),
... }
答案 0 :(得分:2)
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}