【发布时间】:2020-09-22 23:30:12
【问题描述】:
我在 C# 中有一个这样定义的列表:
public class Author
{
public string Name { get; set; }
public string Book { get; set; }
}
List<Author> originalAuthorList = new List<Author>
{
new Author{ Name = "Bob", Book = "Bob's First Book" },
new Author{ Name = "Dan", Book = "Dan's First Book" },
new Author{ Name = "Dan", Book = "Dan's Second Book" },
new Author{ Name = "Tom", Book = "Tom's First Book" }
};
我怎样才能将列表重新排列成这样?
List<Author> newAuthorList = new List<Author>
{
new Author{ Name = "Bob", Book = "Bob's First Book" },
new Author{ Name = "Dan", Book = "Dan's First Book, Dan's Second Book" },
new Author{ Name = "Tom", Book = "Tom's First Book" }
};
换句话说,当一个作者有几本书时,我不希望该作者的列表中有多个项目。我希望每位作者都出现在列表中一次,并且该作者的所有书籍都列在 book 字段中。
【问题讨论】:
-
我们在 Stack Overflow 上已经有数百个(如果不是数千个)示例,说明如何在 C# 中对数据进行分组并为每个组合并一个或多个属性。例如。见重复。在您的情况下,您可能喜欢
string.Join()为每个组创建新的Book值。 -
我已经编辑了我的原始问题,以便列表中的每个项目都有 4 个字段。如何按 Id 对项目进行分组并将所有 4 个字段包含在新列表中?我看到的其他问题只有 2 个字段。
-
请不要在发布问题后更改问题的基本方面。如果您的问题有一些新的方面仍然需要帮助,请发布一个新问题。在您的新问题中,请确保包含一个 minimal reproducible example,说明您到目前为止所做的工作,说明您迄今为止为解决新问题所做的尝试,以及您具体需要什么帮助。
-
我试图发布一个新问题,但被告知我不能这样做,因为我昨天刚刚发布了这个问题。
-
该站点确实具有限制活动的内置约束,尤其是新用户的活动。你将不得不等待。这应该不是问题;如果您有任何紧急需要,Stack Overflow 不适合寻求帮助。该网站的目的是随着时间的推移积累有用信息的数据库,而不是充当程序员的及时答疑台。