Прочитать на английском

Поделиться через


Enumerable.ToDictionary Метод

Определение

Перегрузки

ToDictionary<TKey,TValue>(IEnumerable<ValueTuple<TKey,TValue>>, IEqualityComparer<TKey>)

Создает словарь из перечисления в соответствии с указанным компаратором на равенство ключей.

ToDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)

Создает словарь из перечисления в соответствии с указанным компаратором ключей.

ToDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)

Создает словарь из перечисления в соответствии с компаратором по умолчанию для типа ключа.

ToDictionary<TKey,TValue>(IEnumerable<ValueTuple<TKey,TValue>>)

Создает словарь из перечисления в соответствии с компаратором по умолчанию для типа ключа.

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданными функциями селектора ключа и селектора элемента.

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданным компаратором и функциями селектора ключа и селектора элемента.

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа.

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа и компаратором ключей.

ToDictionary<TKey,TValue>(IEnumerable<ValueTuple<TKey,TValue>>, IEqualityComparer<TKey>)

Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs

Создает словарь из перечисления в соответствии с указанным компаратором на равенство ключей.

C#
public static System.Collections.Generic.Dictionary<TKey,TValue> ToDictionary<TKey,TValue> (this System.Collections.Generic.IEnumerable<(TKey Key, TValue Value)> source, System.Collections.Generic.IEqualityComparer<TKey>? comparer);

Параметры типа

TKey

Тип ключей из элементов source.

TValue

Тип значений из элементов source.

Параметры

source
IEnumerable<ValueTuple<TKey,TValue>>

Перечисление для создания словаря.

comparer
IEqualityComparer<TKey>

Компаратор на равенство для сравнения ключей.

Возвращаемое значение

Словарь, содержащий ключи и значения из source.

Исключения

source — это пустая ссылка (null).

Параметр source содержит один или более повторяющихся ключей.

Комментарии

Если comparer имеет значение null, для сравнения ключей используется компаратор Default равенства по умолчанию.

Применяется к

.NET 9 и .NET 8
Продукт Версии
.NET 8, 9

ToDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)

Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs

Создает словарь из перечисления в соответствии с указанным компаратором ключей.

C#
public static System.Collections.Generic.Dictionary<TKey,TValue> ToDictionary<TKey,TValue> (this System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>> source, System.Collections.Generic.IEqualityComparer<TKey>? comparer);

Параметры типа

TKey

Тип ключей из элементов source.

TValue

Тип значений из элементов source.

Параметры

source
IEnumerable<KeyValuePair<TKey,TValue>>

Перечисление для создания словаря.

comparer
IEqualityComparer<TKey>

Компаратор на равенство для сравнения ключей.

Возвращаемое значение

Словарь, содержащий ключи и значения из source.

Исключения

source — это пустая ссылка (null).

Параметр source содержит один или более повторяющихся ключей.

Комментарии

Если comparer имеет значение null, для сравнения ключей используется компаратор Default равенства по умолчанию.

Применяется к

.NET 9 и .NET 8
Продукт Версии
.NET 8, 9

ToDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)

Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs

Создает словарь из перечисления в соответствии с компаратором по умолчанию для типа ключа.

C#
public static System.Collections.Generic.Dictionary<TKey,TValue> ToDictionary<TKey,TValue> (this System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>> source);

Параметры типа

TKey

Тип ключей из элементов source.

TValue

Тип значений из элементов source.

Параметры

source
IEnumerable<KeyValuePair<TKey,TValue>>

Перечисление для создания словаря.

Возвращаемое значение

Словарь, содержащий ключи и значения из source и использующий компаратор по умолчанию для типа ключа.

Исключения

source — это пустая ссылка (null).

Параметр source содержит один или более повторяющихся ключей.

Применяется к

.NET 9 и .NET 8
Продукт Версии
.NET 8, 9

ToDictionary<TKey,TValue>(IEnumerable<ValueTuple<TKey,TValue>>)

Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs

Создает словарь из перечисления в соответствии с компаратором по умолчанию для типа ключа.

C#
public static System.Collections.Generic.Dictionary<TKey,TValue> ToDictionary<TKey,TValue> (this System.Collections.Generic.IEnumerable<(TKey Key, TValue Value)> source);

Параметры типа

TKey

Тип ключей из элементов source.

TValue

Тип значений из элементов source.

Параметры

source
IEnumerable<ValueTuple<TKey,TValue>>

Перечисление для создания словаря.

Возвращаемое значение

Словарь, содержащий ключи и значения из source и использующий компаратор по умолчанию для типа ключа.

Исключения

source — это пустая ссылка (null).

Параметр source содержит один или более повторяющихся ключей.

Применяется к

.NET 9 и .NET 8
Продукт Версии
.NET 8, 9

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs

Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданными функциями селектора ключа и селектора элемента.

C#
public static System.Collections.Generic.Dictionary<TKey,TElement> ToDictionary<TSource,TKey,TElement> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector);

Параметры типа

TSource

Тип элементов source.

TKey

Тип ключа, возвращаемого функцией keySelector.

TElement

Тип значения, возвращаемого функцией elementSelector.

Параметры

source
IEnumerable<TSource>

IEnumerable<T>, на основе которого создается Dictionary<TKey,TValue>.

keySelector
Func<TSource,TKey>

Функция, извлекающая ключ из каждого элемента.

elementSelector
Func<TSource,TElement>

Функция преобразования для получения результирующего значения каждого элемента.

Возвращаемое значение

Dictionary<TKey,TElement>

Dictionary<TKey,TValue>, который содержит значения типа TElement, выбранные из входной последовательности.

Исключения

Параметр source, keySelector или elementSelector имеет значение null.

-или-

Функция keySelector возвращает null в качестве ключа.

Функция keySelector выдает дубликаты ключей для двух элементов.

Комментарии

Метод ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) использует компаратор Default равенства по умолчанию для сравнения ключей.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs

Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданным компаратором и функциями селектора ключа и селектора элемента.

C#
public static System.Collections.Generic.Dictionary<TKey,TElement> ToDictionary<TSource,TKey,TElement> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
C#
public static System.Collections.Generic.Dictionary<TKey,TElement> ToDictionary<TSource,TKey,TElement> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TSource,TElement> elementSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);

Параметры типа

TSource

Тип элементов source.

TKey

Тип ключа, возвращаемого функцией keySelector.

TElement

Тип значения, возвращаемого функцией elementSelector.

Параметры

source
IEnumerable<TSource>

IEnumerable<T>, на основе которого создается Dictionary<TKey,TValue>.

keySelector
Func<TSource,TKey>

Функция, извлекающая ключ из каждого элемента.

elementSelector
Func<TSource,TElement>

Функция преобразования для получения результирующего значения каждого элемента.

comparer
IEqualityComparer<TKey>

Компаратор IEqualityComparer<T>, используемый для сравнения ключей.

Возвращаемое значение

Dictionary<TKey,TElement>

Dictionary<TKey,TValue>, который содержит значения типа TElement, выбранные из входной последовательности.

Исключения

Параметр source, keySelector или elementSelector имеет значение null.

-или-

Функция keySelector возвращает null в качестве ключа.

Функция keySelector выдает дубликаты ключей для двух элементов.

Комментарии

Если comparer имеет значение null, для сравнения ключей используется компаратор Default равенства по умолчанию.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs

Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа.

C#
public static System.Collections.Generic.Dictionary<TKey,TSource> ToDictionary<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector);

Параметры типа

TSource

Тип элементов source.

TKey

Тип ключа, возвращаемого функцией keySelector.

Параметры

source
IEnumerable<TSource>

IEnumerable<T>, на основе которого создается Dictionary<TKey,TValue>.

keySelector
Func<TSource,TKey>

Функция, извлекающая ключ из каждого элемента.

Возвращаемое значение

Dictionary<TKey,TSource>

Объект Dictionary<TKey,TValue>, содержащий ключи и значения. Значения в каждой группе находятся в том же порядке, что и в source.

Исключения

Параметр source или keySelector имеет значение null.

-или-

Функция keySelector возвращает null в качестве ключа.

Функция keySelector выдает дубликаты ключей для двух элементов.

Примеры

В следующем примере кода показано, как использовать ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) для создания Dictionary<TKey,TValue> с помощью селектора ключей.

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

public static void ToDictionaryEx1()
{
    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 = "Adventure Works", Weight = 33.8, TrackingNumber = 4665518773L } };

    // Create a Dictionary of Package objects,
    // using TrackingNumber as the key.
    Dictionary<long, Package> dictionary =
        packages.ToDictionary(p => p.TrackingNumber);

    foreach (KeyValuePair<long, Package> kvp in dictionary)
    {
        Console.WriteLine(
            "Key {0}: {1}, {2} pounds",
            kvp.Key,
            kvp.Value.Company,
            kvp.Value.Weight);
    }
}

/*
 This code produces the following output:

 Key 89453312: Coho Vineyard, 25.2 pounds
 Key 89112755: Lucerne Publishing, 18.7 pounds
 Key 299456122: Wingtip Toys, 6 pounds
 Key 4665518773: Adventure Works, 33.8 pounds
*/

Комментарии

Метод ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) использует компаратор Default равенства по умолчанию для сравнения ключей.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs
Исходный код:
ToCollection.cs

Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа и компаратором ключей.

C#
public static System.Collections.Generic.Dictionary<TKey,TSource> ToDictionary<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IEqualityComparer<TKey> comparer);
C#
public static System.Collections.Generic.Dictionary<TKey,TSource> ToDictionary<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);

Параметры типа

TSource

Тип элементов source.

TKey

Тип ключей, возвращаемых функцией keySelector.

Параметры

source
IEnumerable<TSource>

IEnumerable<T>, на основе которого создается Dictionary<TKey,TValue>.

keySelector
Func<TSource,TKey>

Функция, извлекающая ключ из каждого элемента.

comparer
IEqualityComparer<TKey>

Компаратор IEqualityComparer<T>, используемый для сравнения ключей.

Возвращаемое значение

Dictionary<TKey,TSource>

Объект Dictionary<TKey,TValue>, содержащий ключи и значения. Значения в каждой группе находятся в том же порядке, что и в source.

Исключения

Параметр source или keySelector имеет значение null.

-или-

Функция keySelector возвращает null в качестве ключа.

Функция keySelector выдает дубликаты ключей для двух элементов.

Комментарии

Если comparer имеет значение null, для сравнения ключей используется компаратор Default равенства по умолчанию.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0