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();

编辑:(基于已编辑的问题)
在这种情况下,我宁愿先获得该值,然后在我的对象的构造函数中使用它。您的选择可能涉及条件或 where 子句。我认为在 Linq to object 中,性能并不那么重要,或者可能取决于集合大小,但我仍然相信它会很小。最好的方法仍然是先选择项目,然后在对象初始化中使用它。

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 回答