连接列表项属性
本文关键字:属性 列表 连接 | 更新日期: 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.Join
和Enumerable.Select
:
string readableNames = string.Join(", ", data.Select(i => i.Name));
Easy
var str = String.Join(", ", data.Select(x => x.Name));