2016-12-29 20 views
0

以下は私の文字列の配列である:文字列配列内で文字列を分割する方法は?

"categories": [ 
    "electronic,sports", 
    "abc,pqr", 
    "xyz", 
    ] 

入力

string[] categories = { "electronic,sports", "abc,pqr", "xyz"}; 

は、今私はカテゴリ内の値を分割したいと今、このカテゴリが含まれてい

public string[] categories { get; set; } 

以下のような記録このようなレコードを作成するにはカテゴリ変数のみ

ので、最終的なカテゴリー変数は、以下のような出力が含まれている必要があります

"categories": [ 
    "electronic", 
    "sports", 
    "abc", 
    "pqr", 
    "xyz", 
    ] 

だから私は私のループが5回実行したいです。私がカテゴリ変数にループすると、さらに多くの操作がこの変数でのみ行われるので、他の変数の最終出力を上回りたくありません。

foreach (var category in categories) 
{ 
    //code 
} 
+0

あなたの入力は何ですか?それはJSONの一部なのでしょうか? –

+3

'categories = categories.SelectMany(o => o.Split( '、'))。ToArray();'? – har07

+0

@ un-lucky:サンプル入力を含めるように私の質問を更新 –

答えて

7

あなたはLINQ SelectMany()を使用して、配列に結果を予測することができます

using System.Linq; 


string[] categories = { "electronic,sports", "abc,pqr", "xyz"}; 
categories = categories.SelectMany(o => o.Split(',')).ToArray(); 

foreach(var c in categories) 
{ 
    Console.WriteLine(c); 
} 

demo

出力:

electronic 
sports 
abc 
pqr 
xyz 
+0

はいこれは働きました。親切な助けをしてくれてありがとう、このような助けを続けてください。もう一度感謝します:) –

1

これは、あなたがあれば、コードなしで試すことができます

List<string> newcategories = new List<string>(); 
foreach(var category in categories) 
{ 
    if(category.Contains(",")) 
    { 
     string[] c = category.Split(','); 
     newcategories.Add(c[0]); 
     newcategories.Add(c[1]); 
    } 
    else 
    { 
     newcategories.Add(category); 
    } 
} 
+0

申し訳ありません私は自分の質問で、私は新しい変数を使用したいとは言いませんでした。私のカテゴリの文字列配列だけにしたい –

2

のためのトリックを行う可能性があります。

 List<string> temps = new List<string>(); 
     foreach (var category in categories) 
     { 
      temps.AddRange(category.Split(',').ToList()); 
     } 
     categories = temps.ToArray(); 
+0

助けをありがとう、このように:) –

2

linqなし... foreachループをいくつか使用しています。

 string[] categories = new string[] { "electronic,sports", "abc,pqr", "xyz" }; 

     foreach(var category in categories) 
     { 
      foreach(var item in category.Split(',')) 
      { 
       Console.WriteLine(item); 
      } 
     } 
+0

助けてくれてありがとう、このような助けを続けてください:) –

関連する問題