gpt4 book ai didi

c# - 获取分组依据的结果并添加到多个列表c#

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:38 24 4
gpt4 key购买 nike

我有一个从 XML 文件反序列化到的列表。

XmlRootAttribute Root = new XmlRootAttribute();
Root.ElementName = "PersonList";

List<Person> persons;
using (var reader = new StreamReader("Test.xml"))
{
XmlSerializer deserializer = new
XmlSerializer(typeof(List<Person>),Root);
persons = (List<Person>)deserializer.Deserialize(reader);
}

我的 XML 文件

   <PersonList>
<Person xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ID>4</ID>
<Name>dasdas</Name>
<Address>asdasd</Address>
<Number>40</Number>
</Person>
</PersonList>

我想按每个 ID 分组,所以如果 ID = '4' 则获取所有结果,然后将其添加到 PersonsID4 列表或者如果 ID = '5' 添加到 PersonsID5 列表

var test = persons.GroupBy(u => u.ID).Select(p => p.ToList()).ToList();
personslist4 = test;

如果有问题,请直接。

最佳答案

GroupBy 之后要做的一件常见事情是构造一个将 ID 映射到项目列表的 Dictionary:

var test = persons
.GroupBy(u => u.ID)
.ToDictionary(g => g.Key, g => g.ToList());

这让您可以选择具有特定 ID 的用户列表,并使用相应的用户列表迭代所有 ID:

foreach (var p in test) {
var id = p.Key;
var list = p.Value;
Console.WriteLine("ID={0}: {1} persons", id, list.Count);
}

关于c# - 获取分组依据的结果并添加到多个列表c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47511014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com