将字符串分隔为子字符串

时间:2009-02-24 15:53:35

标签: c# .net string

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

我想要操作的字符串可以是空的,仅由两个字母组成,或者由逗号分隔的多个双字母代码组成(可能还有空格)。

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

那么......您建议我使用哪种数据结构以及如何实现它?

4 个答案:

答案 0 :(得分:11)

绝对至少从字符串数组开始,因为它是string.Split()的返回类型:

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

更新:为分隔符添加了空间。这样可以修剪结果字符串中的空格。

答案 1 :(得分:6)

这样的事情会起作用吗?

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

答案 2 :(得分:3)

我的答案是“正确的”,但我建议Joel Coehoorn回答。

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

答案 3 :(得分:2)

如果您只是要绑定到结构,那么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[] { ',' })); } } 一个更好的选择。

以下是一个例子:

{{1}}