【问题标题】:c# Is there a simple way to take a multi-split array and turn it into just one, sequential array?c# 有没有一种简单的方法可以将多拆分数组转换为一个顺序数组?
【发布时间】:2016-05-24 21:23:57
【问题描述】:

所以基本上,我有一个字符串“一二;三四;五六”

当我拆分 ';'它变成了一个数组:

one-two  three-four  five-six
  [0]       [1]        [2]

然后foreach(string s in array),我把'-'分开,就变成了

one  two     three  four     five  six
[0]  [1]      [0]   [1]       [0]  [1]

我希望它是一个像这样的数组:

one two three four five six
[0] [1]  [2]   [3]  [4] [5]

作为参考,我的代码目前几乎如下。 (Peharps 我应该创建一个列表...?)

string pairsList="one-two;three-four;five-six";

string[] pairArray=pairsList.Split(';');

foreach(string s in pairArray)
{
    string[] splitPair=s.Split(',');
}

【问题讨论】:

  • string.Split 需要一个字符数组来分割,所以在你的情况下,看看string[] pairArray = pairsList.Split(';', '-'); 是否不起作用。

标签: c# arrays list


【解决方案1】:

您也可以简单地要求string.Split- 拆分。

string.Split 采用params char[] separator 参数列表,因此您也可以简单地要求它按- 拆分:

string[] pairArray = pairsList.Split(';', '-' );

【讨论】:

    【解决方案2】:

    你大部分时间都在那里:

    string pairsList="one-two;three-four;five-six";
    List<string> result = new List<string>();
    
    string[] pairArray=pairsList.Split(';');
    
    foreach(string s in pairArray)
    {
        string[] splitPair=s.Split('-');
        foreach (var thing in splitPair)
        {
            result.add(thing);
        }
    }
    
    return result.ToArray();
    

    更好:一次拆分所有令牌:

    string pairsList="one-two;three-four;five-six";
    
    string[] pairArray=pairsList.Split(';', '-');
    
    return pairArray;
    

    【讨论】:

      猜你喜欢
      • 2020-02-16
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 2022-09-24
      相关资源
      最近更新 更多