Прежде всего, я новичок в Linq .
У меня есть список объектов с именем Lba
, которые имеют различные свойства для группировки.Мои свойства объекта:
int aId,
int bId,
int max,
int min,
CustomObject1? Co1,
CustomObject2? Co2,
CustomObject3? Co3
Я хочу сгруппировать свои объекты в новый объект LbaGroup со следующими свойствами
int aId,
int bId,
int max,
int min,
IList<CustomObject1> Co1,
IList<CustomObject2> Co2,
IList<CustomObject3> Co3
Я сгруппировал свои объекты по следующему запросу, но он возвращаетa List>
var query = myLbaList
.GroupBy(a => new {a.aId, a.bId, a.max, a.min})
.Select(a => a.ToList())
.ToList();
Я могу строить свои новые объекты с помощью 2 foreach
циклов, но мне было интересно, существует ли прямой способ для достижения этого с помощью Linq.
Спасибо.
Редактировать: Мои петли выглядят так:
foreach(List<Lba> LbaList in query){
LbaGroup myNewObject = new LbaGroup{
Co1 = new List<CustomObject1>(),
Co2 = new List<CustomObject2>(),
Co3 = new List<CustomObject3>(),
}
foreach(Lba oldObject in LbaList){
myNewObject.aId = oldObject.aId;
myNewObject.bId = oldObject.bId;
myNewObject.max = oldObject.min;
if oldObject.Co1 != null
myNewObject.Co1.Add(oldObject.Co1);
if oldObject.Co2 != null
myNewObject.Co2.Add(oldObject.Co2);
if oldObject.Co3 != null
myNewObject.Co3.Add(oldObject.Co3);
}
}