对象Book
的{{1}}属性Author
属性Name
。
我想通过所有作者进行迭代,并将其名称字符串添加到以逗号分隔的一个字符串(不是数组)中,因此该字符串应位于as
string
string authorNames = "Author One, Author two, Author three";
答案 0 :(得分:6)
您可以将string.Join
功能与LINQ
string authorNames = string.Join(", ", book.Authors.Select(a => a.Name));
答案 1 :(得分:0)
使用LinQ,有很多方法可以将多个字符串合并为一个字符串。
book.Authors.Select(x => x.Name).Aggregate((x, y) => x + ", " + y);
致詹姆斯的评论
[TestMethod]
public void JoinStringsViaAggregate()
{
var mystrings = new[] {"Alpha", "Beta", "Gamma"};
var result = mystrings.Aggregate((x, y) => x + ", " + y);
Assert.AreEqual("Alpha, Beta, Gamma", result);
}
答案 2 :(得分:0)
您可以使用
string authors = String.Join(", ", book.Authors.Select(a => a.Name));
答案 3 :(得分:0)
LINQ是进入C#的方法,但出于解释目的,您可以在此处明确地编写代码:
string authorNames = string.Empty;
for(int i = 0; i < book.Authors.Count(); i++)
{
if(i > 0)
authorNames += ", ";
authorNames += book.Authors[i].Name;
}
答案 4 :(得分:0)
你也可以循环遍历它们,并将它们附加到authorNames并在最后添加一个逗号,当它完成后只需修剪最后一个逗号。
string authorNames = string.Empty;
foreach(string author in book.Authors)
{
string authorNames += author.Name + ", ";
}
authorNames.TrimEnd(',');