Используйте анонимный тип:
// earlier bit of query
.Select(x => new { VendorId = x.vendor_id, VendorName = x.vendor_name } )
.Distinct()
.ToDictionary(o => o.VendorId, o => o.VendorName);
Я удалил вызов на Take(2)
, так как не было понятно, зачем вам это нужно, а также удалил синтаксический анализ VendorId
, который, как я ожидал, уже был целочисленным типом.
Обратите внимание, что вы должны почти определенно удалить вызов AsEnumerable
из вашего запроса - в настоящее время вы будете получать всех поставщиков и выполнять фильтрацию с помощью LINQ to Objects. Также нет смысла создавать пустой словарь, а затем полностью его игнорировать. Я подозреваю, что ваш полный запрос должен быть:
var vendors = GetWamVendorInfo()
.Select(x => new { VendorId = x.vendor_id,
VendorName = x.vendor_name } )
.Distinct()
.ToDictionary(o => o.VendorId,
o => o.VendorName);
Кроме того, вы должны спросить своего ведущего разработчика , почему он хочет везде использовать лямбда-выражения (предположительно, в отличие от выражений запросов). В разных ситуациях получается более читаемый код с использованием различных синтаксических опций - в этом плане стоит проявить гибкость.