2011-12-27 66 views
1

我只需添加逗號每個字旁:如何在陣列成員之間添加逗號等?

foreach (DataRow row in ds.Tables[0].Rows) 
{    { 
    sqlIn += row["personId"] + ", "; 
} 

然後我刪除最後一個逗號哪一個是不必要的:

sqlIn = sqlIn.TrimEnd(' ', ','); 

我覺得自己像在傳統的ASP的日子。我有什麼C#版本嗎?

+0

爲什麼不使用列表或集合中,每個結果補充的嗎? – 2011-12-27 12:30:43

回答

3

繼巴斯乙答案正確的語法是

string s = String.Join(", ", ds.Tables[0].Select().Select(r => r["personID"].ToString())); 

這裏工作證明

using System; 
using System.Linq; 
using System.Data.Linq; 
using System.Data; 


    namespace ConsoleApplication5 
    { 
     class Program 
     { 

     static void Main(string[] args) 
     { 
      DataSet ds = new DataSet(); 

      DataTable dt = new DataTable(); 
      ds.Tables.Add(dt); 
      string col = "personId"; 
      dt.Columns.Add(col, typeof(int)); 

      dt.Rows.Add(1); 
      dt.Rows.Add(2); 

      string s = String.Join(", ", ds.Tables[0].Select().Select(r => r["personID"].ToString())); 

      Console.WriteLine(s); 
      Console.ReadLine(); 

     } 
     } 

    } 

輸出將被

1, 2 
6

使用String.Join

String.Join(", ", ds.Tables[0].Rows.Select(r => r["personId"].ToString())); 
1

你希望它能以CSV格式轉換。

可以使用以下String.Join重載:

方法1String.Join轉換的列值的陣列或

方法2),可以使用String.Join超載Join(Of T)(String, IEnumerable(Of T))後,選擇擴展方法將返回IEnumerable的String類型值。

方法1:

String.Join(",", (From row In ds.Tables[0].Rows.AsEnumerable Select row["personId")).ToArray) 

方法2:

String.Join(", ", ds.Tables[0].Rows.Select(row => row["personId"].ToString())); 

遵循該SO主題以供參考:Convert single column of a DataTable to CSV