Я пытаюсь сделать групповой в linq, в основном у меня есть список (вдоль списка - около 1000 записей), и я хочу, чтобы групповой Описание.
Записи являются транспортными средствами, следовательно, существует около 50 Ford Mondeos
Мой запрос довольно прост, никаких объединений (пока :-)), но он возвращает список, включающий 50 Ford Mondeos, я хотел сгруппировать их, чтобы была только 1 запись.
Я только выбираю Описание, я не выбираю идентификаторы, которые будут отличаться, но в LinqPad он возвращает desc, и я вижу 50 одинаковых форд мондео в описании - буква за буквой.
Что я делаю не так?
from v in dc.Vehicles
group v by v.Description into g1
from y in g1
orderby y.Description
select new
{
Desc = y.Description
};
EDIT
Теперь он возвращает только 1 запись для каждого Ford Mondeo, это был мой тест, чтобы убедиться, что он работает, но мне нужно остановиться на этом, опять же, он должен вернуть только 1 запись для каждого Ford Mondeo, так как я проверил, все они имеют такое же количество дверей, категории, номер модели и т. д.
from v in dc.Vehicles
group v by v.Description into g1
orderby g1.Key
select new
{
Desc = g1.Key,
CategoryId = g1.CategoryId,
MakeId = g1.MakeId,
ModelId = g1.ModelId,
Doors = g1.Doors,
};
Конечно, вышеприведенное не работает, оно не находит все остальные поля, то есть CategoryId ... Я попытался разделить группу и добавить запятую для других полей.
Я думаю, что у меня небольшая путаница с ключом, я понимаю, что это ключ, но если вы группируете по более чем 1 полям, то потенциально у вас будет более 1 ключа.
Есть идеи?