【发布时间】:2021-06-28 19:20:18
【问题描述】:
我有一个 List<int> 有几个元素。我知道如果我使用foreach 遍历它,我可以获得所有值,但我只想要列表中的最大 int 值。
var l = new List<int>() { 1, 3, 2 };
【问题讨论】:
标签: c#
我有一个 List<int> 有几个元素。我知道如果我使用foreach 遍历它,我可以获得所有值,但我只想要列表中的最大 int 值。
var l = new List<int>() { 1, 3, 2 };
【问题讨论】:
标签: c#
假设 .NET Framework 3.5 或更高版本:
var l = new List<int>() { 1, 3, 2 };
var max = l.Max();
Console.WriteLine(max); // prints 3
Enumerable 类中有很多像这样的很酷的节省时间的方法。
【讨论】:
使用 Enumerable.Max
int max = l.Max();
【讨论】:
int max = (from l in list select l).Max().FirstOrDefault();
根据评论,这应该是
l.Max();
【讨论】:
l 是一个无法编译的枚举列表,否则(from l in list select l) 也没有意义
你可以使用这个语法:
l.OrderByDescending(x => x).First(); //for maximum
l.OrderBy(x => x).First(); // for minimum
或者你可以使用 linq 中的 Max() 和 Min() 方法。
希望我说的对你有用……
【讨论】:
using System.Linq;
using System.Collections.Generic;
int Max = list.Max();
【讨论】:
int max = listOfInts[0];
for(int i = 1; i < listOfInts.Count; i++) {
max = Math.Max(max, listOfInts[i]);
}
【讨论】:
如果你不想使用 Linq:
l.Sort();
int min = l[0]; //1
int max = l[l.Count - 1]; //3
【讨论】: