如何拆分字符串数组中的字符串?
下面是我的字符串数组:如何拆分字符串数组中的字符串?
"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
}
您可以使用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);
}
输出:
electronic
sports
abc
pqr
xyz
是的,这工作。谢谢你的善良帮助,请继续帮助像这样。再次感谢你:) –
这可能做的伎俩为您
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);
}
}
对不起,正如我在我的问题中所说的,我不想使用新的变量。我想在我的类别字符串数组中只有 –
您可以在不如果代码尝试;
List<string> temps = new List<string>();
foreach (var category in categories)
{
temps.AddRange(category.Split(',').ToList());
}
categories = temps.ToArray();
非常感谢您的帮助,并请继续帮助像这样:) –
没有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);
}
}
非常感谢你的帮助,并请继续帮助像这样:) –
您的输入是什么?是JSON的一部分还是其他? –
'categories = categories.SelectMany(o => o.Split(','))。ToArray();'? – har07
@ un-lucky:更新了我的问题以包含示例输入 –