2011-08-01 58 views
0

使用下面這個簡單的項目類:如何確定項目集合中的最大值?

class Item 
{ 
    public int Value { get; set; } 
} 

和物品名單:

var items = new List<Item>(); 

items.Add(new Item() { Value = 1 }); 
items.Add(new Item() { Value = 2 }); 
items.Add(new Item() { Value = 3 }); 

如何判斷在所有項目的最大價值?

如何確定列表中的哪個項目具有最大值?

回答

8

使用LINQ

items.Max(v => v.Value) 

含項目最大的價值

var max = items.Max(v => v.Value); 
var x = items.Where(v => v.Value == max); 

然而,devdigital建議MaxBy擴展方法只會遍歷集合一次

3

如何直接告訴所有項目的最大價值?

可以使用Max標準查詢操作:

var maxValue = items.Max(i => i.Value); 

如何確定哪個項目列表中具有最大的價值?

退房morelinqMaxBy擴展

1
public class ItemEvaluator 
{ 
    public int Highest { get { return highest; } } 
    public int Lowest { get { return lowest; } } 

    public void Add(Item item) 
    { 
     highest = item.Value > highest ? item.Value : highest; 
     lowest = item.Value < lowest ? item.Value : lowest; 
     items.Add(items); 
    } 

    private List<int> items = new List<int>(); 
    private int lowest; 
    private int highest; 
} 

public class Item 
{ 
    public int Value { get; set; } 
} 
相關問題