2016-05-18 3 views
1

のは、私がデータテーブルから働いているので、私たちは、次のしているとしましょう:私はカンマで区切られた項目を書き出したい配列全体をどのようにcharで区切ってループし、その最後の要素の後にはないchar?

datarow.ItemArray = {items}

foreach(var item in datarow.ItemArray) 
{ 
    Console.Write(item+",") 
} 

Console.Read() 

私がそうすると、アイテムの後にコンマが入り、私はそれを望まない。私は各項目の後にカンマを書くように言ったのでそれがわかりますが、それを取り除く方法はわかりません。

+0

forループを使用しました。 – matcheek

+0

'.Take'や' for'ループを使うことができます。 – crashmstr

+3

'string.Join'で試してください –

答えて

0

アイテムの前に区切りを記述する場合、問題は「最初の項目を除き、ループ配列」となり:

boolean first = true; 
foreach(Datarow datarow in sorted.Rows) 
{ 
foreach(var item in datarow.ItemArray) 
{ 
if (first) 
    first = false; 
else 
    Console.Write(","); 
Console.Write(item); 
} 
} 
+0

これは動作します。唯一の問題は、各行がカンマで始まることです。 – HandsomeJack

+0

'boolean first = true;'外側の 'foreach'内に配置します。 –

+0

アレックスの助言があればそれは機能します。 – HandsomeJack

3
Console.WriteLine(string.Join(",", datarow.ItemArray)) 

Console.Read() 
0

あなたはすべての要素を反復したいので、あなたの質問のタイトルは誤解を招くものだと思います。あなたはちょうど最後のカンマを持つことを避けたいです。それを達成するために、次のサンプルコードを参照してください:私はあなたのために作成したdotnetfiddle

datarow.ItemArray = {1,2,3,4,5} 
var str = String.Join(",", datarow.ItemArray.Select(i => i.ToString()).ToArray()); 
Console.Write(str); 
0
var allItemsExceptLast = datarow.ItemArray.Take(datarow.ItemArray.Length -1); 
+0

これは答えませんOPの質問。これは文字どおり配列の最後の要素を取り除きます。 OPは、配列内のすべての要素をカンマで区切って指定したいが、最後の要素の後にカンマを表示したくない。しかし、あなたの防衛に、質問のタイトルは誤解を招く。 –

0

String.Joinが必要なようです。また、String.Joinにはparams object[] valuesがあるので、foreachループは配列の各項目を取得する必要はありません。

using System; 

public class Program 
{ 
    public static void Main() 
    { 
     //object[] myArray = new object[] { 1,2,3,4,5 }; 

     //Console.Write(String.Join(", ", myArray)); 

     // Output: 1, 2, 3, 4, 5 

     // In your case... 

     Console.Write(String.Join(", ", datarow.ItemArray); 
     Console.Read(); 
    } 
} 

が、それはあなたのために働くなら、私を知ってみましょう:あなたは、リンクを使用しない場合

はしかし、ここでは何が必要です。

0
using System.IO; 
using System; 

class Program 
{ 
    static void Main() 
    { 
    int[] datarow = {1,2,3,4,5}; 
    int i=0; 
    do{ 
      Console.Write(datarow[i]+","); 
      i++; 
     }while(i<datarow.Length-1); 
    Console.Write(datarow[i]+"\n"); 
    } 
} 
関連する問題