将字符串分隔成子字符串

问题描述:

我想将由逗号分隔的一个或多个双字母代码组成的字符串分隔成两个字母的子字符串,并将它们放入字符串数组或其他合适的数据结构中。其结果是在某一时刻将数据绑定到组合框,因此需要考虑这一点。将字符串分隔成子字符串

我想操纵的字符串可以是空的,只包含两个字母或由多个由逗号分隔的双字母代码(可能还有一个空格)组成。

我正在考虑使用一个简单的字符串数组,但我不确定这是否是最好的方法。

那么...你会推荐我使用哪种数据结构,以及如何实现它?

肯定至少有一个字符串数组开始,因为它是string.Split()返回类型:

string MyCodes = "AB,BC,CD"; 
char[] delimiters = new char[] {',', ' '}; 
string[] codes = MyCodes.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); 

更新:添加空间的分隔符。这将会从结果字符串中修剪空格。

+0

哦,学会了更短的新的东西... – LeppyR64 2009-02-24 15:59:16

+0

这看起来非常有前途的:)会尝试明天... – Sakkle 2009-02-24 15:59:46

如果您只是要绑定到结构,那么String[]应该是很好的 - 如果您需要在将数据用作数据源之前处理数据,那么List<String>可能是更好的选择。

下面是一个例子:

using System; 
using System.Collections.Generic; 

class Program 
{ 
    static void Main() 
    { 
     String s = "ab,cd,ef"; 

     // either a String[] 
     String[] array = s.Split(new Char[] {','}); 
     // or a List<String> 
     List<String> list = new List<String>(s.Split(new Char[] { ',' })); 
    } 
} 

我的回答是“正确的”,但我建议乔尔科霍恩的回答。

public static string[] splitItems(string inp) 
{ 
    if(inp.Length == 0) 
     return new string[0]; 
    else 
     return inp.Split(','); 
} 

会是这样的工作?

var list = theString.Split(", ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();