有没有办法将字符串列表转换为逗号分隔的字符串?
String[] data = new String[] { "test", "abc", "123" }
转换成:
'test', 'abc', '123'
可能的解决方案:
- 将每个字符串用
''
括起来,然后在列表上使用String.join
。 foreach
遍历列表中的每个字符串,并连接''
和','
,最后删除最后一个','
。
是否有任何简单的Linq(一行表达式)可以同时执行这两个操作?
有没有办法将字符串列表转换为逗号分隔的字符串?
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之前,我会先考虑它们。
return "'" + string.Join("','", data) + "'";
- Merlyn Morgan-GrahamArray.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,"'"));
Concat
而不是生成相同代码的+
? - Alexei Levenkov+
和 condition ? true : false
。例如,比较 "a" + ((a>1) ? "yes: " + variable : "no one") + "b"
和 string.Concat("a", (a>1) ? "yes: " + variable : "no", "b")
。 - BacksList<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());
var x = string.Join(", ", yourArray);
。 - slugster