如何从字符串列表中创建一个字符串? [复制]
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 中,您不需要ToArray
:String.Join
具有将 IEnumerable<String>
作为第二个参数的重载。
不必使用.ToArray()
,.Join 方法也允许 IList试试 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 中创建字符串列表?
使用正则表达式从文件名中创建一个包含多个可能字符串的列表[重复]