有没有办法将字符串列表转换为以逗号分隔的字符串?
String[] data = new String[] { "test", "abc", "123" }
转换为:
'test', 'abc', '123'
可能的解决方案:
''
围绕每个字符串,然后在列表中使用String.join
。 Foreach
列表中的每个字符串,并执行''
和','
的连接,最后删除最后','
是否有任何简单的Linq(一行表达式)可以同时执行这两项操作?
答案 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存储过程。