使用LINQ从表中获取最大值

时间:2012-06-15 16:39:34

标签: sql-server database linq sql-server-2008

我的数据库中有一张表。我想获取名为NumOfView的列的最大值。我用了这段代码:

var advert=(from ad in storedb.Ads
             where ad.AdScope == "1" 
             select ad.NumOfView).Max();

它有效,但当有两个或多个相同的最大值时,它不起作用,并显示此消息:

  

序列包含多个元素

我现在该怎么办?你的答案非常有帮助。感谢

3 个答案:

答案 0 :(得分:3)

您可以尝试以下方法:

 var advert = storedb.ads
                    .Where(a => a.AdScope == "1")
                    .OrderByDescending(a => a.NumOfView)
                    .First();

答案 1 :(得分:2)

var advert = storedb.ads
                    .Where(a => a.AdScope == "1")
                    .Select(a => a.NumOfView)
                    .Max()
                    .first();

答案 2 :(得分:1)

请看一个例​​子:

private void button1_Click(object sender, EventArgs e)
{
    List<int> lista = new List<int>();
    lista.Add(1);
    lista.Add(2);
    lista.Add(2);
    lista.Add(3);
    lista.Add(3);
    var query = (from lt in lista
                 orderby lt descending
                 select lt).FirstOrDefault<int>();
    textBox1.Text = query.ToString();

}