【问题标题】:How to create one string from list of String? [duplicate]如何从字符串列表中创建一个字符串? [复制]
【发布时间】:2012-01-11 07:19:56
【问题描述】:

可能重复:
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 方法可以用于此?

【问题讨论】:

  • 我认为最好的方法可能是像你说的那样循环
  • 这个问题有什么问题?为什么 3 票反对?
  • 这对某人来说可能很简单,但我从未使用过它,因此问过这个问题。简单的解决方案是否意味着反对票?
  • 按照这种逻辑stackoverflow.com/users/22656/jon-skeet 应该对他回答的每个问题都投反对票。

标签: c# string linq


【解决方案1】:
String.Join(Environment.NewLine, Errors.ToArray());

【讨论】:

  • 在 .NET 4 中,您不需要 ToArrayString.Join 具有将 IEnumerable&lt;String&gt; 作为第二个参数的重载。
  • 不必使用.ToArray(),.Join 方法也允许 IList 类型的数据。
  • 仍有一些环境使用 3.5(甚至 2.0 想象!)--> IList 没有过载
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:
    public String ErrorMessage
    {
        get 
        { 
            //Use your appropriate separator instead of ','
            return string.Join(",", Errors); 
            //return string.Join("", Errors); // Just concatenating all message 
        }
    }
    

    【讨论】:

      【解决方案4】:
      Errors.Aggregate((left, right) => string.Format(@"{0}\n{1}", left, right));
      

      【讨论】:

        【解决方案5】:
         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;
            }
        
        }
        

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

        【讨论】:

          猜你喜欢
          • 2013-08-11
          • 1970-01-01
          • 2012-12-23
          • 2015-09-06
          • 2016-07-10
          • 1970-01-01
          • 2023-03-21
          • 1970-01-01
          • 2014-06-27
          相关资源
          最近更新 更多