我正在编写一个litle c#app,它从一个源中提取信息并将其打印到txt文件。但是在订购信息时我遇到了一些问题。 我有一个像这样的tupled列表:
List<Tuple<string,string,string>>
在这个列表中,我有这样的元素:
(SomeName1, SomeID1, Description1)
(SomeName2, SomeID2, Description1)
(SomeName3, SomeID3, Description1)
(SomeName4, SomeID4, Description1)
(SomeName5, SomeID5, Description1)
(SomeName6, SomeID6, Description2)
(SomeName7, SomeID7, Description2)
(SomeName8, SomeID8, Description2)
(SomeName9, SomeID9, Description2)
等。 因此,我们可以看到名称和ID始终是唯一的。虽然几个元素的描述相同。我想要的是对列表进行分组,或者根据列表的描述将列表中的元素提取到其他几个列表中。所以我例如从上面的列表中得到两个listst。列表1将包含以下内容:
(SomeName1, SomeID1, Description1)
(SomeName2, SomeID2, Description1)
(SomeName3, SomeID3, Description1)
(SomeName4, SomeID4, Description1)
(SomeName5, SomeID5, Description1)
虽然列表2将包含此内容:
(SomeName6, SomeID6, Description2)
(SomeName7, SomeID7, Description2)
(SomeName8, SomeID8, Description2)
(SomeName9, SomeID9, Description2)
有关如何获得此消息的任何消息?假设我不知道描述是什么,也不知道它们有多少不同的描述。最佳解决方案是,如果我可以让list1首先在索引0处显示描述,然后在以下索引处显示name,id和description。但我可以设法找到我自己的想法。我无法工作的是根据描述对大列表进行分组/拆分 我会认可我能得到的所有帮助。提前致谢!
答案 0 :(得分:0)
var result = input.GroupBy(t=>t.Item3, (key,items)=>items.ToList()).ToList();
//
//list1 = result[0];
//list2 = result[1]; ...