使用LINQ ASP.NET选择列的第一个记录

时间:2014-07-10 05:53:08

标签: c# asp.net sql linq

我有一个表格包含IdSmidAdditionalComment等字段。我有相同Smid的多行,但AdditionalComment数据仅出现在第一行。请在下面找到表格结构

Id     |      Smid       |    AdditionalComment
-------+-----------------+-----------------------
 1     |        2        |       price 4.50 
 2     |        2        |
 3     |        2        |
 4     |        4        |       price 5.00
 5     |        4        |

等等。

在下面找到我的代码

CODE

objlist.SMInfoId = smid.ToInt();
var comment = objlists.GroupBy(x => x.AdditionalComments).Select(g => g.First());
if (comment != null)
{
  al.Add(comment);
}

Session["arrayList"] = al;

提前谢谢你。

3 个答案:

答案 0 :(得分:0)

听起来您想要查找指定Smid的评论:因此您可以使用Smid ==(您的号码)并输入AdditionalComment来查询该对象。

所以,可能是这样的:

var obj = objlists.FirstOrDefault(x => x.Smid == smid && x.AdditionalComment != null);
var comment = (obj != null) ? obj.AdditionalComment : null;

或者,如果您特别需要找到具有最低Smid的{​​{1}}行:

Id

答案 1 :(得分:0)

尝试以下代码:

var result1 = dt.tbluserinfos.GroupBy(u => u.nm).First();

答案 2 :(得分:0)

试试这个:( 但是附加评论数据只出现在第一行

  var obj = objlists.Where(x=>x.AdditionalComment!="");