Не понимаю, почему так. Есть вызов асинхронного метода
tasks = request.Sets
.Select(x => _service.MethodAsync(...))
.ToArray();
Также приведу объявление вызываемой функции:
public async Task<IReadOnlyDictionary<long, TValue>> MethodAsync(...)
Как видно, она возвращает
Task<IReadOnlyDictionary<long, TValue>>
при этом, далее есть блок, в котором мы дожидаемся тред и здесь есть непонятная для меня вещь:
cache = (await Task.WhenAll(tasks))
.Select((x, i) => new KeyValuePair<int, IReadOnlyDictionary<long, TValue>>(request.Sets[i].Id, x))
.ToDictionary(x => x.Key, x => x.Value);
Rider подсказывает, что тип x
-- IReadOnlyDictionary<long, TValue>>
, а тип i
-- int
. Таким образом, мне непонятно, почему Select
ожидает делегата с двумя аргументами, вместо делегата с одним аргументом типа IReadOnlyDictionary<long, TValue>>
?
Есть ли какая-то разница между присваиванием нового значение DataRow через DataRowExtensionsSetField и через индексатор по имени?
У меня возникла проблема с элементарной отправкой post запросаПока я гуглил, еще больше запутался
Программа берет из реестра значение ключа, но в полученной строке есть неизвестные символы, которые мешают правильной обработки строкСама...