Enumerable.Max<TSource> 方法 (IEnumerable<TSource>, Func<TSource, Single>)

2013/12/13

调用序列的每个元素上的转换函数并返回最大 Single 值。

Namespace:  System.Linq
程序集:  System.Core(位于 System.Core.dll 中)

public static float Max<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, float> selector
)

类型参数

TSource

source 中的元素的类型。

参数

source
类型: System.Collections.Generic.IEnumerable<TSource>
要确定其最大值的值序列。
selector
类型: System.Func<TSource, Single>
应用于每个元素的转换函数。

返回值

类型: System.Single
序列中的最大值。

用法说明

在 Visual Basic 和 C# 中,您可以对类型为 IEnumerable<TSource> 的任何对象调用此方法作为实例方法。使用实例方法语法来调用此方法时,忽略第一个参数。

异常条件
ArgumentNullException

sourceselectornull

InvalidOperationException

source 中不包含任何元素。

Max<TSource>(IEnumerable<TSource>, Func<TSource, Single>) 方法使用 IComparable<T>Single 实现比较值。

如果提供了函数 selector(用于将 source 的成员投影为数值类型,即 Single),则可以将此方法应用于任意值序列。

在 Visual Basic 查询表达式语法中,Aggregate Into Max() 子句转换为 Enumerable.Max 的一个调用。

下面的代码示例演示如何使用 Max<TSource>(IEnumerable<TSource>, Func<TSource, Int32>) 确定投影值序列中的最大值。

说明注意:

此代码示例使用此重载方法的重载,该重载与本主题介绍的特定重载不同。若要将该示例扩展到此主题,请更改 selector 函数的函数体。


      class Pet
      {
         public string Name { get; set; }
         public int Age { get; set; }
      }

      public static void MaxEx4()
      {
         Pet[] pets = { new Pet { Name="Barley", Age=8 },
                            new Pet { Name="Boots", Age=4 },
                            new Pet { Name="Whiskers", Age=1 } };

         int max = pets.Max(pet => pet.Age + pet.Name.Length);

         outputBlock.Text += String.Format(
             "The maximum pet age plus name length is {0}.",
             max) + "\n";
      }

      /*
       This code produces the following output:

       The maximum pet age plus name length is 14.
      */



Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2014 Microsoft