使用LINQ to Object选择2个值

时间:2012-04-30 09:22:18

标签: linq

如何只使用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 个答案:

答案 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}