如何从String列表中创建一个字符串?

时间:2011-12-02 07:56:52

标签: c# string linq

  

可能重复:
  Concat all strings inside a List<string> using LINQ

我正在使用C#4.0,其中我有一个非空字符串对象的列表。

IList<String> Errors

我想要做的是创建一个单独的字符串,其中所有列表元素一个接一个地附加,并带有换行符。

public String  ErrorMessage
{
    get { return Errors.SomeMethodHere(); }
}

我能想到的一种方法是循环使用字符串列表。有没有更好的方法,或者我可以使用内置的System.String或LINQ方法?

5 个答案:

答案 0 :(得分:5)

String.Join(Environment.NewLine, Errors.ToArray());

答案 1 :(得分:2)

尝试String.Join(Environment.NewLine, Errors.ToArray())(对于.NET 4及更高版本,您不需要ToArray)

更多信息:http://msdn.microsoft.com/en-us/library/57a79xd0.aspx

答案 2 :(得分:1)

public String ErrorMessage
{
    get 
    { 
        //Use your appropriate separator instead of ','
        return string.Join(",", Errors); 
        //return string.Join("", Errors); // Just concatenating all message 
    }
}

答案 3 :(得分:0)

Errors.Aggregate((left, right) => string.Format(@"{0}\n{1}", left, right));

答案 4 :(得分:0)

 public static class MyExtensions
{
    public static string ErrorMessage(this IList<String> strList)
    {
        string retMessage = null;
        for (int i = 0; i < strList.Count; i++)
        {
            retMessage += strList[i].ToString() + Environment.NewLine;
        }
        return retMessage;
    }

}

您可以使用上面的代码片段来制作扩展方法,从列表数据生成单个字符串。