У меня есть список с некоторыми записями, некоторые из которых имеют одинаковый идентификатор записи. Я хочу сгруппировать по этому идентификатору записи, а остальные свойства - списки и некоторые строки. Это объект, который я надеюсь создать:GroupBy свойство, сделать список повторяющихся
public class Product {
public string Id{ get; set; }
public List<string> Package { get; set; }
public string ShortDescription { get; set; }
}
И записи я хочу обрабатывать приходят так:
list_Of_Records = [ { id: 123, Package: ABC, ShortDescription: Description },
{ id: 123, Package: ZXY, ShortDescription: Description },
{ id: 123, Package: MLO, ShortDescription: Description },
{ id: 456, Package: ABC, ShortDescription: DescriptionTwo },
{ id: 456, Package: ZXY, ShortDescription: DescriptionTwo },
{ id: 456, Package: MLO, ShortDescription: DescriptionTwo },
]
И Я бы хотел, чтобы выглядеть примерно так:
list_Of_Records_Organized = [
{ Id: 123, Package: [ABC, ZXY, MLO], ShortDescription: Description },
{ Id: 456, Package: [ABC, ZXY, MLO], ShortDescription: DescriptionTwo }
]
Описание всегда одинаково для каждого идентификатора, поэтому я могу взять любой из трех. Проблема в том, что эти пакеты!
Надеюсь, что я достаточно ясен.
Спасибо! Это работает! Пришлось изменить SelectMany на Select и добавить ToList, но отлично работает. –
@fede_rosario Извините, я неправильно понял. Я думал, что 'r.Package' был' List '. Я соответствующим образом обновил ответ. –
Да, я сделал то же самое. Если бы идея состояла в том, чтобы иметь список, а затем новый список с групповыми значениями пакета, тогда пакет должен быть списком и SelectMany. Я написал один и тот же запрос, но не публиковал сообщения, так как этот ответ отлично справляется с этим. –