使用附加串联将字符串数组转换为逗号分隔字符串

时间:2015-11-02 05:55:49

标签: c# string linq concatenation comma

有没有办法将字符串列表转换为以逗号分隔的字符串?

String[] data = new String[] { "test", "abc", "123" }

转换为:

'test', 'abc', '123'

可能的解决方案:

  1. 使用''围绕每个字符串,然后在列表中使用String.join
  2. Foreach列表中的每个字符串,并执行''','的连接,最后删除最后','
  3. 是否有任何简单的Linq(一行表达式)可以同时执行这两项操作?

5 个答案:

答案 0 :(得分:19)

  

是否有任何简单的Linq(一行表达式)来做到这两点。

pip install gunicorn==<version_number>

Linq的基础知识:转换是string.Join(",", data.Select(item => "'" + item + "'")) 语句。过滤器是Select语句。

也就是说,有许多字符串操作工具可用Linq,并且他们更有可能针对字符串进行优化,所以在查看之前我总是会查看它们LINQ。

答案 1 :(得分:3)

您可以使用聚合linq

Array.Skip(1).Aggregate(Array[0],(a,b) => string.Format("{0},'{1}'",a,b));

答案 2 :(得分:1)

String[] data = new String[]{"test","abc","123"};
var result = string.Join(",", data.Select(o => string.Concat("'",o,"'"));

答案 3 :(得分:0)

您还可以使用Aggregate方法: 例如:

for line in f:   
    list_words = [line.strip().split(',') for line in f]

答案 4 :(得分:0)

注意:如果您以IEnumerable或类似方式开始,则必须在LINQ语句的末尾调用.ToArray(),如下所示:

input parameter: IEnumerable<string> feederIdList    

var feederListString = String.Join(",", feederIdList.Select(feeder => "\"" + feeder + "\"").ToArray());

在我的情况下,我需要每个字符串都有双引号,以便稍后传入Oracle存储过程。