2012-06-15 21 views
0

我在我的數據庫中有一個表。我想獲得名爲NumOfView的列的最大值。我用這個代碼:使用LINQ從表中獲取最大值

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

它的工作原理,但是當有兩個或兩個以上相同的最大值它不工作,並出現以下消息:

序列包含多個元素

我現在該做什麼?你的答案將非常有用。由於

+0

哪裏 「出現」 該消息?如果它是例外的一部分,請發佈完整的堆棧跟蹤。 –

+0

在末尾加上'.First()') – bluevector

+0

Add FirstOrDefault – user1166147

回答

2

你可以嘗試以下方法:

var advert = storedb.ads 
        .Where(a => a.AdScope == "1") 
        .OrderByDescending(a => a.NumOfView) 
        .First(); 
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(); 

} 
2
var advert = storedb.ads 
        .Where(a => a.AdScope == "1") 
        .Select(a => a.NumOfView) 
        .Max() 
        .first(); 
相關問題