Linq没有foreach?

时间:2012-03-23 14:54:10

标签: c# linq

              string popUpHTML="";

                var xx = from Temp in TemplateList
                                where
                                (
                                Temp.TitleID == titleID
                                )
                                select Temp.HTML;

                foreach (var s in xx)
                {
                    popUpHTML =  s.ToString();
                }

上面的代码正在运行。执行的linq应该只返回一个值。有没有办法在没有foreach循环的情况下得到上面LINQ的结果。 (对不起,我是LINQ的新手。)

更新:titleID是数据库中的唯一键,因此只需要一个结果。

5 个答案:

答案 0 :(得分:8)

现在,您的查询会返回IEnumerable,而是使用FirstOrDefault()(或Single(),如果您完全确定完全一个结果) :

 var popUpHTML = (from Temp in TemplateList
                  where Temp.TitleID == titleID
                  select Temp.HTML).FirstOrDefault();

答案 1 :(得分:4)

var popUpHTML = TemplateList.Where(temp => temp.TitleID == titleID)
                            .Select(temp => temp.HTML)
                            .SingleOrDefault();
如果没有包含所提供ID的项目,则

popUpHtmlnull

答案 2 :(得分:2)

string popUpHTML = 
    (
     from Temp in TemplateList 
     where ( Temp.TitleID == titleID ) 
     select Temp.HTML
    )
    .FirstOrDefault();

答案 3 :(得分:0)

   var xx = (from Temp in TemplateList
                where
                (
                Temp.TitleID == titleID
                )
                select Temp.HTML).Take(1);

答案 4 :(得分:0)

var popUpHTML = TemplateList.FirstOrDefault(Temp => Temp.TitleID == titleID);