[英]Convert Array of Strings to Comma Separated String with additional concatenation
有没有办法将字符串列表转换为逗号分隔的字符串?
String[] data = new String[] { "test", "abc", "123" }
转换成:
'test', 'abc', '123'
可能的解决方案:
''
包围每个字符串,然后在列表中使用String.join
。Foreach
列表中的每个字符串并进行''
和','
的连接,最后删除最后一个','
是否有任何简单的 Linq(单行表达式)来做这两个?
是否有任何简单的 Linq(单行表达式)可以做到这两点。
string.Join(",", data.Select(item => "'" + item + "'"))
Linq 的基础知识:转换是Select
语句。 过滤器是Where
语句。
也就是说,有很多不是 Linq 的字符串操作工具可用,而且它们更有可能针对字符串进行优化,所以我总是先查看它们,然后再使用 Linq。
您可以使用聚合 linq
Array.Skip(1).Aggregate(Array[0],(a,b) => string.Format("{0},'{1}'",a,b));
String[] data = new String[]{"test","abc","123"};
var result = string.Join(",", data.Select(o => string.Concat("'",o,"'"));
您还可以使用聚合方法:示例:
List<string> fruit = new List<string> {"Apple", "Orange", "Pear", "Tomato", "Banana"};
var fruitSentence = fruit.Aggregate((current, next) => $"{current},{next}");
注意:如果您从 IEnumerable 或类似名称开始,则必须在 LINQ 语句的末尾调用 .ToArray() ,如下所示:
input parameter: IEnumerable<string> feederIdList
var feederListString = String.Join(",", feederIdList.Select(feeder => "\"" + feeder + "\"").ToArray());
在我的情况下,我需要每个字符串在其周围加上双引号,以便稍后传递到 Oracle 存储过程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.