エクスポート (0) 印刷
すべて展開
展開 最小化
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

Enumerable.Max<TSource> メソッド (IEnumerable<TSource>)

ジェネリック シーケンスの最大値を返します。

名前空間:  System.Linq
アセンブリ:  System.Core (System.Core.dll 内)

public static TSource Max<TSource>(
	this IEnumerable<TSource> source
)

型パラメーター

TSource

source の要素の型。

パラメーター

source
型 : System.Collections.Generic.IEnumerable<TSource>
最大値を確認する対象となる値のシーケンス。

戻り値

型 : TSource
シーケンスの最大値。

使用上の注意

Visual Basic および Visual C# では、このメソッドを、IEnumerable<TSource> 型のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。詳細については、「拡張メソッド (Visual Basic)」または「拡張メソッド (C# プログラミング ガイド)」を参照してください。

例外条件
ArgumentNullException

sourcenull なので、

TSource 型が IComparable<T> を実装している場合、Max<TSource>(IEnumerable<TSource>) メソッドはその実装を使用して値を比較します。 また、TSource 型が IComparable を実装している場合は、その実装を使用して値を比較します。

TSource が参照型で、ソース シーケンスが空か null 値のみを含む場合、このメソッドは null を返します。

Visual Basic のクエリ式の構文では、Aggregate Into Max() 句が Max の呼び出しに変換されます。

Max<TSource>(IEnumerable<TSource>) を使用して IComparable<T> オブジェクトのシーケンスの最大値を確認する方法を次のコード例に示します。


            /// <summary>
            /// This class implements IComparable to be able to 
            /// compare one Pet to another Pet.
            /// </summary>
            class Pet : IComparable<Pet>
            {
                public string Name { get; set; }
                public int Age { get; set; }

                /// <summary>
                /// Compares this Pet to another Pet by 
                /// summing each Pet's age and name length.
                /// </summary>
                /// <param name="other">The Pet to compare this Pet to.</param>
                /// <returns>-1 if this Pet is 'less' than the other Pet, 
                /// 0 if they are equal,
                /// or 1 if this Pet is 'greater' than the other Pet.</returns>
                int IComparable<Pet>.CompareTo(Pet other)
                {
                    int sumOther = other.Age + other.Name.Length;
                    int sumThis = this.Age + this.Name.Length;

                    if (sumOther > sumThis)
                        return -1;
                    else if (sumOther == sumThis)
                        return 0;
                    else
                        return 1;
                }
            }

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

                Pet max = pets.Max();

                Console.WriteLine(
                    "The 'maximum' animal is {0}.",
                    max.Name);
            }

            /*
             This code produces the following output:

             The 'maximum' animal is Barley.
            */



.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

追加
表示:
© 2014 Microsoft