如何确定项目集合中的最大价值?

时间:2011-08-01 19:46:55

标签: c# linq

使用以下简单的Item类:

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 } );

如何判断所有项目的最大价值?

如何确定列表中哪个项目的值最大?

4 个答案:

答案 0 :(得分:8)

使用LINQ

items.Max(v => v.Value)

包含最大价值的物品

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

然而,devdigital建议的MaxBy扩展方法只会迭代集合一次

答案 1 :(得分:3)

  

如何直接告诉所有项目的最大价值?

您可以使用Max标准查询运算符:

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

如何确定列表中哪个项目的值最大?

查看MaxBy扩展名morelinq

答案 2 :(得分:1)

答案 3 :(得分: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; }  
}