如何从字符串列表中创建一个字符串? [复制]

Posted

技术标签:

【中文标题】如何从字符串列表中创建一个字符串? [复制]【英文标题】: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 方法可以用于此?

【问题讨论】:

我认为最好的方法可能是像你说的那样循环 ***.com/questions/559415/… 这个问题有什么问题?为什么 3 票反对? 这对某人来说可能很简单,但我从未使用过它,因此问过这个问题。简单的解决方案是否意味着反对票? 按照这种逻辑***.com/users/22656/jon-skeet 应该对他回答的每个问题都投反对票。 【参考方案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\n1", 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;
    


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

【讨论】:

以上是关于如何从字符串列表中创建一个字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

你将如何从字符串列表中创建一个逗号分隔的字符串?

如何在 markdown frontmatter 中创建字符串列表?

使用正则表达式从文件名中创建一个包含多个可能字符串的列表[重复]

如何在 Swift 中创建十六进制颜色字符串 UIColor 初始化程序? [复制]

如何在Javascript中创建随机字符串? [复制]

如何在存储过程中创建字符串列表变量以及如何在另一个查询中使用它?