📅  最后修改于: 2023-12-03 15:32:39.479000             🧑  作者: Mango
当我们需要找到给定序列中的最大值时,可以使用 LINQ 的 Max 方法。这个方法接收一个序列,并返回序列中的最大值。
public static TSource Max<TSource>(this IEnumerable<TSource> source);
public static TResult Max<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);
我们来看一个示例,假设我们有一个包含整数的序列:
var numbers = new List<int> { 1, 5, 3, 8, 2 };
我们可以使用 Max 方法获取最大值:
int max = numbers.Max();
上面的代码将返回 8。如果要获取其他类型的序列中的最大值,只需要使用对应的类型即可。比如获取一个包含字符串的序列中的最大值:
var names = new List<string> { "John", "Maggie", "Alex", "Tina" };
string maxName = names.Max();
这个例子中,最大的字符串是 "Tina"。
如果需要找到一个对象序列中的最大值,可以使用 Max 方法的另一个重载,它接收一个 lambda 表达式,用于选择要比较的属性。如下所示:
var people = new List<Person> {
new Person { Name = "John", Age = 25 },
new Person { Name = "Maggie", Age = 30 },
new Person { Name = "Alex", Age = 27 },
new Person { Name = "Tina", Age = 21 }
};
Person oldestPerson = people.Max(p => p.Age);
这个代码将返回年龄最大的 Person 对象。
在 LINQ 中,可以使用 Max 方法来找到给定序列的最大值。Max 方法有两个重载,可以用于不同类型的序列。如果需要找到一个对象序列中的最大值,则可以使用 Max 方法的重载,该重载接收一个 lambda 表达式,用于选择要比较的属性。