【问题标题】:How to split string inside string array?如何在字符串数组中拆分字符串?
【发布时间】:2017-10-27 05:09:08
【问题描述】:

下面是我的字符串数组:

 public string[] categories { get; set; }

现在这个类别包含如下记录:

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

输入

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

现在我想在类别中拆分值并创建这样的记录,但仅在 类别变量中

所以最终类别变量应该包含如下输出:

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

所以我希望我的循环运行 5 次;如果我循环到类别变量并且仅对该变量进行更多操作,那么我不想在其他变量中采用最终输出。

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

【问题讨论】:

  • 您的意见是什么?这是 JSON 的一部分还是其他什么?
  • categories = categories.SelectMany(o => o.Split(',')).ToArray(); ?
  • @un-lucky:更新了我的问题以包含示例输入

标签: c# .net linq


【解决方案1】:

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

【讨论】:

  • 是的,这行得通。非常感谢您的帮助,请继续这样的帮助。再次感谢您:)
【解决方案2】:

不用if代码也可以试试;

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

【讨论】:

  • 非常感谢您的帮助,请继续这样的帮助:)
【解决方案3】:

这可能对你有用

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);
    }
}

【讨论】:

  • 对不起,正如我在问题中所说,我不想使用新变量。我只想在我的类别字符串数组中
【解决方案4】:

没有 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);
            }
        }

【讨论】:

  • 非常感谢您的帮助,请继续这样的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
相关资源
最近更新 更多