Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何确定项目集合中的最大价值?_C#_Linq - Fatal编程技术网

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

C# 如何确定项目集合中的最大价值?,c#,linq,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 } ); 如何判断所有项目的最大价值 如何确定列表

使用以下简单的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 } );
如何判断所有项目的最大价值

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

Enumerable.max:

使用LINQ

items.Max(v => v.Value)
价值最大的物品

var max = items.Max(v => v.Value);
var x = items.Where(v => v.Value == max);
然而,devdigital建议的MaxBy扩展方法将只迭代集合一次

如何直接说出所有项目中的最大价值

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

var maxValue = items.Max(i => i.Value);
如何确定列表中哪个项目的价值最大

查看MaxBy扩展名

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