本文章是由機器翻譯。 將指標移到文章內的文字上方即可查看原文。 其他資訊。
譯文
原文
資訊
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

Enumerable.ToLookup<TSource, TKey, TElement> 方法 (IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>)

根據指定的索引鍵選取器和項目選取器函式,從 IEnumerable<T> 建立 Lookup<TKey, TElement>

命名空間:  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
)

類型參數

TSource

source 之項目的型別。

TKey

keySelector 所傳回之索引鍵的型別。

TElement

elementSelector 所傳回值的型別。

參數

source
類型:System.Collections.Generic.IEnumerable<TSource>
用來建立 Lookup<TKey, TElement> 的來源 IEnumerable<T>
keySelector
類型:System.Func<TSource, TKey>
用來從各個項目擷取索引鍵的函式。
elementSelector
類型:System.Func<TSource, TElement>
用來從每個項目產生結果項目值的轉換函式。

傳回值

類型:System.Linq.ILookup<TKey, TElement>
Lookup<TKey, TElement> ,其中包含從輸入序列選取之型別 TElement 的值。

使用注意事項

在 Visual Basic 和 C# 中,您可以在任何 IEnumerable<TSource> 類型物件中呼叫這個方法以做為執行個體。使用執行個體方法語法呼叫這個方法時,請省略第一個參數。如需詳細資訊,請參閱擴充方法 (Visual Basic)擴充方法 (C# 程式設計手冊)

例外狀況條件
ArgumentNullException

sourcekeySelectorelementSelectornull

ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) 方法會傳回 Lookup<TKey, TElement>,其為將索引鍵對應至值集合的一對多字典。 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
            */



.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 系統需求

社群新增項目

顯示:
© 2015 Microsoft