Я пытаюсь сделать группу в linq, в основном у меня есть список (по списку - около 1000 записей), и я хочу groupby Description.LINQ: понимание и выполнение Groupby для возврата уникальных строк?
Записи являются транспортные средства, так, следовательно, есть 50 или так Форд Mondeos
неМой запрос довольно прост, не присоединяется (пока :-)), но он возвращает список, включающий 50 Форд Mondeos, я хотел его чтобы сгруппировать их, поэтому есть только 1 запись.
Я только выбираю Описание, я не выбираю идентификаторы, которые будут отличаться, но в LinqPad он возвращает desc, и я могу видеть 50 ford mondeos, которые все одинаковы в описании - буква для письма.
Что я делаю неправильно?
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 запись для каждого Форд Мондео, это был мой тест, чтобы убедиться, что он работал, но мне нужно, чтобы расширить это, опять же он должен только вернуть 1 запись каждый для Ford Mondeo, как я проверил все они имеют одинаковое количество дверей, Categor, модель ид и т.д ..
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 ... я попытался отделить gr oup by и добавление запятой для других полей.
Я думаю, что у меня немного запутанность над ключом, я понимаю, что это ключ, но если вы группируете более 1 поля, тогда потенциально у вас будет больше чем 1 ключ ..
Любые идеи?
Благодаря Джон, большая помощь! .Это отлично работает, оно возвращает 1 запись для всех ford mondeos, я не совсем понимаю ключ, но могу ли я группировать свое поле в Linq, как в sql? Тогда что происходит с ключом? Я обновлю свой вопрос, чтобы показать вам, что я делаю –
Вопрос обновлен –
Я действительно получил это, но это лучший способ сделать это? выбор в пределах выбора CategoryId = g1.Выберите (x => x.CategoryId). Должен признаться, что это сработало ... ТАК Я вынужден вызвать метод select, чтобы получить поле с группировкой? И конечно, если 1 mondeo как 5 dorrs и 1 имеет 4 двери, но с тем же описанием - мне понадобится 2 записи, так как технически они разные, поэтому мне кажется, что вы должны иметь возможность группироваться на более чем 1 поле, Я думаю, что я все еще застрял в мире sql :-) !!! –