【问题标题】:linq item get without foreach in selected new keyword [duplicate]在选定的新关键字中没有foreach的linq项目[重复]
【发布时间】:2015-03-31 02:00:28
【问题描述】:

我想使用 linq to SQL 获取数据。我用这样的每个 是否有另一种方法可以在不使用 for each 的情况下获取查询数据。基本上我想从查询中获取 d.name 而不使用 for 每个循环,因为我知道有一个对象不需要为它使用循环。

var query=from d in db.table where d.id=2 select new {d.name};
foreach (var item in query)
        {
            string a=item.name;
        }

【问题讨论】:

  • 如果您知道只有一项,那么您可以使用SingleOrDefault。如果可能不止一个,而您只想要第一个,请使用FirstOrDefault。而且您应该删除您之前的评论 - 这种语言不会让您走得太远。

标签: c# linq


【解决方案1】:

看起来你只想要名字,你不需要匿名类型,你可以像这样使用FirstOrDefault

db.table.Where(d => d.id == 2).Select(d => d.name).FirstOrDefault();

这将返回带有id 2 的第一条记录的名称,如果没有这样的记录,则返回null

如果您希望所有名称都使用 ToList 而不是 FirstOrDefault

【讨论】:

    【解决方案2】:

    您可以像这样将 FirstOrDefault 与您的代码一起使用(如果 d.name 是一个字符串):

    var query=(from d in db.table
               where d.id==2 
               select d.name)
               .FirstOrDefault();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多