QueryableExtensions.ToDictionaryAsync<TSource, TKey, TElement> - метод (IQueryable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>, IEqualityComparer<TKey>, CancellationToken)
[Эта страница относится к документации к Entity Framework 6. Последняя версия доступна в составе пакета Entity Framework NuGet. Дополнительные сведения об Entity Framework см. в разделе msdn.com/data/ef.]
Создает выражение Dictionary<TKey, TValue> из последовательности IQueryable<T> путем его асинхронного перечисления согласно заданной функции выбора ключа, средства сравнения и функции выбора элемента.
Пространство имен: System.Data.Entity
Сборка: EntityFramework (в EntityFramework.dll)
Синтаксис
'Декларация
<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")> _
<ExtensionAttribute> _
Public Shared Function ToDictionaryAsync(Of TSource, TKey, TElement) ( _
source As IQueryable(Of TSource), _
keySelector As Func(Of TSource, TKey), _
elementSelector As Func(Of TSource, TElement), _
comparer As IEqualityComparer(Of TKey), _
cancellationToken As CancellationToken _
) As Task(Of Dictionary(Of TKey, TElement))
'Применение
Dim source As IQueryable(Of TSource)
Dim keySelector As Func(Of TSource, TKey)
Dim elementSelector As Func(Of TSource, TElement)
Dim comparer As IEqualityComparer(Of TKey)
Dim cancellationToken As CancellationToken
Dim returnValue As Task(Of Dictionary(Of TKey, TElement))
returnValue = source.ToDictionaryAsync(keySelector, _
elementSelector, comparer, cancellationToken)
[SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
public static Task<Dictionary<TKey, TElement>> ToDictionaryAsync<TSource, TKey, TElement>(
this IQueryable<TSource> source,
Func<TSource, TKey> keySelector,
Func<TSource, TElement> elementSelector,
IEqualityComparer<TKey> comparer,
CancellationToken cancellationToken
)
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1006:DoNotNestGenericTypesInMemberSignatures")]
[ExtensionAttribute]
public:
generic<typename TSource, typename TKey, typename TElement>
static Task<Dictionary<TKey, TElement>^>^ ToDictionaryAsync(
IQueryable<TSource>^ source,
Func<TSource, TKey>^ keySelector,
Func<TSource, TElement>^ elementSelector,
IEqualityComparer<TKey>^ comparer,
CancellationToken cancellationToken
)
[<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")>]
static member ToDictionaryAsync :
source:IQueryable<'TSource> *
keySelector:Func<'TSource, 'TKey> *
elementSelector:Func<'TSource, 'TElement> *
comparer:IEqualityComparer<'TKey> *
cancellationToken:CancellationToken -> Task<Dictionary<'TKey, 'TElement>>
JScript does not support generic types and methods.
Параметры типа
- TSource
Тип элементов последовательности source.
- TKey
Тип ключа, возвращенного средством выбора keySelector.
- TElement
Тип значения, возвращенного elementSelector.
Параметры
- source
Тип: System.Linq.IQueryable<TSource>
Объект IQueryable<T>, на основе которого создается словарь Dictionary<TKey, TValue>.
- keySelector
Тип: System.Func<TSource, TKey>
Функция, предназначенная для извлечения ключа из каждого элемента.
- elementSelector
Тип: System.Func<TSource, TElement>
Функция преобразования, предназначенная для формирования значения элемента результата из каждого элемента.
- comparer
Тип: System.Collections.Generic.IEqualityComparer<TKey>
Значение IEqualityComparer<T> для сравнения ключей.
- cancellationToken
Тип: System.Threading.CancellationToken
Токен CancellationToken, который нужно отслеживать во время ожидания выполнения задачи.
Возвращаемое значение
Тип: System.Threading.Tasks.Task<Dictionary<TKey, TElement>>
Задача, представляющая асинхронную операцию.Результат задачи содержит словарь Dictionary<TKey, TValue>, который содержит значения типа TElement, выбранные из входной последовательности.
Примечание об использовании
В Visual Basic и C# этот метод можно вызывать как метод экземпляра для любого объекта типа IQueryable<TSource>. При вызове метода для экземпляра следует опускать первый параметр. Дополнительные сведения см. в разделе https://msdn.microsoft.com/ru-ru/library/bb384936(v=vs.113) или https://msdn.microsoft.com/ru-ru/library/bb383977(v=vs.113).
Примечания
Несколько активных операций в одном экземпляре контекста не поддерживается. Используйте «await» для обеспечения того, чтобы все асинхронные операции завершались перед вызовом другого метода применительно к этому контексту.