如何拆分字符串数组中的字符串?

问题描述:

下面是我的字符串数组:如何拆分字符串数组中的字符串?

"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:更新了我的问题以包含示例输入 –

您可以使用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

是的,这工作。谢谢你的善良帮助,请继续帮助像这样。再次感谢你:) –

这可能做的伎俩为您

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

对不起,正如我在我的问题中所说的,我不想使用新的变量。我想在我的类别字符串数组中只有 –

您可以在不如果代码尝试;

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

非常感谢您的帮助,并请继续帮助像这样:) –

没有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

非常感谢你的帮助,并请继续帮助像这样:) –