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

l--*_*''' 27 c# split

我有一个字符串:

a = "1;2;3;"
Run Code Online (Sandbox Code Playgroud)

我想split这样:

foreach (string b in a.split(';'))
Run Code Online (Sandbox Code Playgroud)

我怎样才能确保我只返回1,2,3而不是一个"空字符串"?

如果我分裂1;2;3然后我会得到我想要的.但如果我分裂1;2;3;然后我得到一个额外的'空字符串'.我已经采取了建议并做到了这一点:

string[] batchstring = batch_idTextBox.Text.Split(';', StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)

但是,我收到这些错误:

错误1'string.Split(params char [])'的最佳重载方法匹配包含一些无效参数C:\ Documents and Settings\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

qJa*_*ake 53

包含any时,String.Split接受一个数组StringSplitOptions:

string[] batchstring = batch_idTextBox.Text.Split(new [] { ';' }, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)

如果您不需要选项,语法会变得更容易:

string[] batchstring = batch_idTextBox.Text.Split(';');
Run Code Online (Sandbox Code Playgroud)


Ry-*_*Ry- 18

使用StringSplitOptions.

a.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)


Mar*_*lon 5

传递StringSplitOptions.RemoveEmptyEntries给Split方法.

编辑

Split方法没有超载来分割单个字符.您需要指定一个字符数组.

foo.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)