У меня есть класс продукт что-то вроде:гр данные #/LINQ группировки
class Product
{
public string Name;
public int Year;
public int Vendor;
public int Count;
}
Ввод данных как
Name Year Vendor Count
'A' 1990 1 15
'A' 1990 2 20
'A' 1998 4 5
'B' 1995 1 15
'B' 1995 2 2
Я хочу, чтобы преобразовать данные в новую структуру, как
class NewStructure
{
public string Name;
public int Year;
Dictionary<int, int> Vendor_Count;
}
Поле Dictionary используется для хранения пары {Vendor, Count}, пара Name и Year будет иметь словарь корректуры. Результат будет
Name Year Vendor Count
'A' 1990 1 15
2 20
'A' 1998 4 5
'B' 1995 1 15
2 2
Я попытался следующий Linq запрос
from input in inputList
group inputList by new { input.Name, input.Year }
into grouping
orderby grouping.Key.Name, grouping.Key.Year
select new
{
ProductName = grouping.Key.Name,
OriginYear = grouping.Key.Year,
Vendor_Count = grouping.
}
Но я не могу получить право 'Vendor_Count'. Интересно, что мне делать?
В данных в исходном вопросе Name/Vendor/Year образуют уникальный набор. В вашем наборе B есть два Vendor для 95. Это может быть возможно в данных, но это не в оригинальной спецификации ... Таким образом, это, кажется, работает отлично. :) – Chris
Да, это работает. Спасибо Aidan – esun203