この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Enumerable.ToLookup<TSource, TKey, TElement> メソッド (IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>)

 

公開日: 2016年10月

作成、 Lookup<TKey, TElement> から、 IEnumerable<T> 指定されたキー セレクター関数および要素セレクター関数に従ってします。

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

public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector,
	Func<TSource, TElement> elementSelector
)

パラメーター

source
Type: System.Collections.Generic.IEnumerable<TSource>

IEnumerable<T> を作成する、 Lookup<TKey, TElement> からです。

keySelector
Type: System.Func<TSource, TKey>

各要素からキーを抽出する関数。

elementSelector
Type: System.Func<TSource, TElement>

各要素から結果の要素値を生成する変換関数。

戻り値

Type: System.Linq.ILookup<TKey, TElement>

A Lookup<TKey, TElement> 型の値を含む TElement 入力シーケンスから選択します。

型パラメーター

TSource

要素の型 sourceします。

TKey

によって返されるキーの種類 keySelectorします。

TElement

によって返される値の型 elementSelectorします。

Exception Condition
ArgumentNullException

sourcekeySelector、または elementSelector は、null です。

ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) メソッドが返される、 Lookup<TKey, TElement>, 、値のコレクションにキーをマップする一対多のディクショナリ。 A Lookup<TKey, TElement> と異なる、 Dictionary<TKey, TValue>, 、単一の値をキーの一対一のマッピングを実行します。

既定の等値比較子 Default キーを比較するために使用します。

次のコード例では、使用して ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) を作成する、 Lookup<TKey, TElement> されたキー セレクター関数および要素セレクター関数を使用しています。

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
    public long TrackingNumber { get; set; }
}

public static void ToLookupEx1()
{
    // Create a list of Packages.
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", 
                  Weight = 25.2, TrackingNumber = 89453312L },
              new Package { Company = "Lucerne Publishing", 
                  Weight = 18.7, TrackingNumber = 89112755L },
              new Package { Company = "Wingtip Toys", 
                  Weight = 6.0, TrackingNumber = 299456122L },
              new Package { Company = "Contoso Pharmaceuticals", 
                  Weight = 9.3, TrackingNumber = 670053128L },
              new Package { Company = "Wide World Importers", 
                  Weight = 33.8, TrackingNumber = 4665518773L } };

    // Create a Lookup to organize the packages. 
    // Use the first character of Company as the key value.
    // Select Company appended to TrackingNumber 
    // as the element values of the Lookup.
    ILookup<char, string> lookup =
        packages
        .ToLookup(p => Convert.ToChar(p.Company.Substring(0, 1)),
                  p => p.Company + " " + p.TrackingNumber);

    // Iterate through each IGrouping in the Lookup.
    foreach (IGrouping<char, string> packageGroup in lookup)
    {
        // Print the key value of the IGrouping.
        Console.WriteLine(packageGroup.Key);
        // Iterate through each value in the 
        // IGrouping and print its value.
        foreach (string str in packageGroup)
            Console.WriteLine("    {0}", str);
    }
}

/*
 This code produces the following output:

 C
     Coho Vineyard 89453312
     Contoso Pharmaceuticals 670053128
 L
     Lucerne Publishing 89112755
 W
     Wingtip Toys 299456122
     Wide World Importers 4665518773
*/

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
3.5 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: