簡體   English   中英

使用附加連接將字符串數組轉換為逗號分隔的字符串

[英]Convert Array of Strings to Comma Separated String with additional concatenation

有沒有辦法將字符串列表轉換為逗號分隔的字符串?

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

轉換成:

'test', 'abc', '123'

可能的解決方案:

  1. ''包圍每個字符串,然后在列表中使用String.join
  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM