我有一個對象列表,每個對象都包含一個字符串列表,我想使用在其列表中包含相同值的組對象。 我想這樣的事情,但它把他們都在同一個列表。我如何分組嵌套列表?
List<Item> Items = new List<Item>();
Item Item1 = new Item();
Item1.Id = "1";
Item1.Names.AddRange(new List<string> { "A" });
Items.Add(Item1);
Item Item2 = new Item();
Item2.Id = "2";
Item2.Names.AddRange(new List<string> { "B" });
Items.Add(Item2);
Item Item3 = new Item();
Item3.Id = "3";
Item3.Names.AddRange(new List<string> { "A", "C" });
Items.Add(Item3);
List<List<Item>> GroupedItems = Items.GroupBy(u => u.Names.GroupBy(s => s)).Select(t => t.ToList()).ToList();
我想什麼有發生在這種情況下是GroupedItems
包含兩個列表,第一個是包含Item1
和Item3
,第二個包含Item2
。
還不清楚試圖完成什麼。當你想使用LINQ'GroupBy'操作時,你應該提供一個'keySelector'函數,這個函數將會爲你的集合中的每個項目生成一個關鍵對象。然後所有具有相同關鍵對象的項目將被分組在一起。 –
假設你有'item1.Names = {「A」,「B」},'item2.Names = {「A」,「C」},'item3.Names = {「B」,「C」} '。你想在這種情況下收到什麼? –
@IvanGritsenko我只是想在列表中將具有相似值的項目組合在一起。如果同一個項目出現在多個組中,則無關緊要。謝謝。 – Rick