3

我正在寻找一种优雅的方式来创建一个可读的表单,该表单是生活在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[] { ',', ' ' });
4

2 回答 2

4

只需使用string.JoinEnumerable.Select

string readableNames = string.Join(", ", data.Select(i => i.Name));
于 2013-05-30T10:31:21.123 回答
2

简单的

var str = String.Join(", ", data.Select(x => x.Name));
于 2013-05-30T10:31:30.020 回答