连接列表项属性

本文关键字:属性 列表 连接 | 更新日期: 2023-09-27 18:15:57

我正在寻找一种优雅的方式来创建一个可读的形式,在Generic.List中生活的所有项目的一些属性。

让我用一个例子来说明。我有一个这样的数据结构:

public class InfoItem {
    public string Name { get; set; }
    public string Description { get; set; }
}
下面是我在我的代码中如何使用它:
List<InfoItem> data = new List<InfoItem>();
data.Add(new InfoItem() { Name = "Germany", Description = "Describes something" });
data.Add(new InfoItem() { Name = "Japan", Description = "Describes something else" });
data.Add(new InfoItem() { Name = "Austria", Description = "And yet something else" });

现在,我想要得到的是一个字符串,如"德国,日本,奥地利"。是否有一些LINQ或泛型的魔力可以比这个原始循环做得更好?

string readableNames = "";
foreach (var item in data) {
    readableNames += item.Name + ", ";
}
readableNames = readableNames.TrimEnd(new char[] { ',', ' ' });

连接列表项属性

只用string.JoinEnumerable.Select:

string readableNames = string.Join(", ", data.Select(i => i.Name));

Easy

var str = String.Join(", ", data.Select(x => x.Name));