从数组中获取值并添加到一个字符串中

时间:2013-10-18 11:52:06

标签: c# .net

对象Book的{​​{1}}属性Author属性Name

我想通过所有作者进行迭代,并将其名称字符串添加到以逗号分隔的一个字符串(不是数组)中,因此该字符串应位于as

string

string authorNames = "Author One, Author two, Author three";

5 个答案:

答案 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(',');