gpt4 book ai didi

c# - StringSplitOptions.RemoveEmptyEntries 等效于 TextFieldParser

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:53 36 4
gpt4 key购买 nike

我最近学习了 TextFieldParser 来解析 words,而以前我会使用 string.Split 来这样做。我有一个关于新学的 class 的问题。

如果我们使用 string.SplitStringSplitOptions.RemoveEmptyEntries

解析这样的消息
string message = "create    myclass   \"56, 'for better or worse'\""; //have multiple spaces
string[] words = message.Split(new char[] { ' ' }, 3, StringSplitOptions.RemoveEmptyEntries);

然后我们将得到包含如下三个元素的words:

[0] create
[1] myclass
[2] "56, 'for better or worse'"

但是如果我们使用 TextFieldParser

string str = "create    myclass   \"56, 'for the better or worse'\"";
var parser = new Microsoft.VisualBasic.FileIO.TextFieldParser(new StringReader(str)); //treat string as I/O
parser.Delimiters = new string[] { " " };
parser.HasFieldsEnclosedInQuotes = true;
string[] words2 = parser.ReadFields();

然后返回将包含一些没有文本的

[0] create
[1]
[2]
[3]
[4] myclass
[5]
[6]
[7] "56, 'for better or worse'"

现在有没有像 string.Split StringSplitOptions.RemoveEmptyEntries 那样删除结果数组中的空 words 的等效方法?

最佳答案

也许这会成功

parser.HasFieldsEnclosedInQuotes = true;
string[] words2 = parser.ReadFields();
words2 = words2.Where(x => !string.IsNullOrEmpty(x)).ToArray();

一个类轮替代方案可能是

string[] words2 = parser.ReadFields().Where(x => !string.IsNullOrEmpty(x)).ToArray();

关于c# - StringSplitOptions.RemoveEmptyEntries 等效于 TextFieldParser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34624536/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com