C#:拆分字符串而不返回空字符串

C#:拆分字符串而不返回空字符串,c#,split,C#,Split,我有一个字符串: a = "1;2;3;" 我想以这种方式拆分它: foreach (string b in a.split(';')) 如何确保只返回1、2、3,而不是“空字符串” 如果我拆分1;2.3然后我会得到我想要的。但是如果我拆分1;2.3;然后我得到一个额外的“空字符串”。我采纳了一些建议并做到了这一点: string[] batchstring = batch_idTextBox.Text.Split(';', StringSplitOptions.RemoveEmptyEnt

我有一个字符串:

a = "1;2;3;"
我想以这种方式拆分它:

foreach (string b in a.split(';'))
如何确保只返回
1
2
3
,而不是“空字符串”

如果我拆分
1;2.3
然后我会得到我想要的。但是如果我拆分
1;2.3;然后我得到一个额外的“空字符串”。我采纳了一些建议并做到了这一点:

string[] batchstring = batch_idTextBox.Text.Split(';', StringSplitOptions.RemoveEmptyEntries);
但是,我遇到了以下错误:

错误1“string.Split(params)”的最佳重载方法匹配 char[])有一些无效的参数C:\Documents和 设置\agordon\My Documents\Visual Studio 2008\Projects\lomdb\EnterData\DataEntry\DAL.cs 18 36 EnterData

错误2参数“2”:无法从“System.StringSplitOptions”转换 到“char”C:\Documents and Settings\agordon\My Documents\Visual Studio 2008\Projects\lomdb\EnterData\DataEntry\DAL.cs 18 68 EnterData


StringSplitOptions.RemoveEmptyEntries
传递给Split方法

编辑

Split方法没有可由单个字符拆分的重载。您需要指定一个字符数组

foo.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries);
使用

试一试:

string test = "1;2;3;";
test = String.Join(",", test.TrimEnd((char)59).Split((char)59));

string test = "1;2;3;";
test = String.Join(",", test.TrimEnd(';').Split(';'));

不知道拆分选项。如果你没有,你可以

a.Split(';').Where(s => s.Length > 0).ToArray();
使用


.Split
有4个重载,其中两个不支持
StringSplitOptions
并使用
params
格式(因此不需要创建拆分器数组),其中两个支持
StringSplitOptions
,需要
char
string

string数组。包含任何
StringSplitOptions
时,Split采用数组

string[] batchstring = batch_idTextBox.Text.Split(new [] { ';' }, StringSplitOptions.RemoveEmptyEntries);
如果不需要选项,语法将变得更简单:

string[] batchstring = batch_idTextBox.Text.Split(';');
上面的代码将根据第一个空格将行拆分为两个子字符串。 substr[0]将显示“您好!” substr[1]将有“祝您有美好的一天”。在这里,拆分中的2是一个整数计数器,您可以根据需要传递任何值

string[] batchstring = batch_idTextBox.Text.Split(new [] { ';' }, StringSplitOptions.RemoveEmptyEntries);
string[] batchstring = batch_idTextBox.Text.Split(';');
string line="Hello! Have nice day."
string[] substr = line.Split(new[] {' '}, 2);