ฉันมีคำถามเกี่ยวกับIGrouping
และSelect()
วิธีการ
สมมติว่าฉันมีIEnumerable<IGrouping<int, smth>>
วิธีนี้:
var groups = list.GroupBy(x => x.ID);
ที่เป็นlist
List<smth>
และตอนนี้ฉันต้องส่งค่าของแต่ละIGrouping
รายการไปยังรายการอื่นด้วยวิธีใดวิธีหนึ่ง:
foreach (var v in structure)
{
v.ListOfSmth = groups.Select(...); // <- ???
}
ใครช่วยแนะนำวิธีการรับค่า ( List<smth>
) จากIGrouping<int, smth>
ในบริบทดังกล่าว?
ID มักจะเป็นช่องข้อมูลประจำตัวซึ่งควรจะไม่ซ้ำกันซึ่งจะทำให้การจัดกลุ่มโดยไม่มีประโยชน์ถ้าคุณเพียงแค่พยายามลบข้อมูลที่ซ้ำกันลอง Distinct () แทน ถ้าเป็น list.GroupBy (x => x.SubID) มันจะสมเหตุสมผลที่จะใช้การจัดกลุ่ม แต่ในกรณีนั้นคุณน่าจะต้องการจัดกลุ่มและ foreach (var grp ในกลุ่ม) {grp.ToList () ; } จะทำเช่นนั้น
—
MikeT