[英]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.