C# 字符串连接:代码改进
我目前有一个名为C# 字符串连接:代码改进,c#,.net,string,concatenation,C#,.net,String,Concatenation,我目前有一个名为docIds的列表(字符串),看起来有点像: {A3001,A40001,BF0003,13458} 它只包含字母和数字。我希望按如下方式输出该数组(用于DQL查询) 当然,我使用了String.Join方法 String.Join(",",docIds.ToArray()) Output: A3001,A40001,BF0003,13458 我知道有2种(非性能)方法可以添加这些引号 方法1: 在字符串.Join之前,迭代列表中的每个字符串并添加引号 方法2: 以下字符串
docIds
的列表(字符串)
,看起来有点像:
{A3001,A40001,BF0003,13458}
它只包含字母和数字。我希望按如下方式输出该数组(用于DQL查询)
当然,我使用了String.Join
方法
String.Join(",",docIds.ToArray())
Output: A3001,A40001,BF0003,13458
我知道有2种(非性能)方法可以添加这些引号
- 方法1:
在
之前,字符串.Join
迭代列表中的每个字符串并添加引号
- 方法2:
以下字符串操作:
"'" + String.Join(",",docIds.ToArray()).Replace(",","','") + "'"
string.Join(",", docIds.Select(id => string.Format("'{0}'", id)));
此重载是在.NET 4.0中添加的,在您需要添加ToArray
以创建字符串[]
之前,您可以使用LINQ:
string.Join(",", docIds.Select(id => string.Format("'{0}'", id)));
此重载是在.NET 4.0中添加的,在您需要添加
ToArray
以创建string[]
之前,如果您使用字符串串联来连接大量字符串,最好使用StringBuilder
以获得更好的性能。即使字符串已经存储在列表中,在上面的示例中,也不需要docid
上的ToArray()
String.Join
必须使用IEnumberable。使用ToArray
,您可以添加在调用函数之前必须完成的额外工作。如果您正在将连接的字符串存储到另一个字符串变量中。@crashmstr:谢谢您的提示!我不知道!谢谢你向我指出这一点。我不知道,看起来我有一些修改要做:)如果您使用字符串连接来连接大量字符串,最好使用StringBuilder
以获得更好的性能。即使字符串已经存储在列表中,也不需要ToArray()
在上述示例中的docid
上String.Join
必须使用IEnumberable。使用ToArray
,您可以添加在调用函数之前必须完成的额外工作。如果您正在将连接的字符串存储到另一个字符串变量中。@crashmstr:谢谢您的提示!我不知道!谢谢你向我指出这一点。我不知道,看起来我有一些修改要做:)漂亮,绝对漂亮!工作起来很有魅力,在我的代码中看起来也更好!只要你允许,我会尽快接受答案!漂亮,绝对漂亮!工作起来很有魅力,在我的代码中看起来也更好!只要你允许,我会尽快接受答案!