【问题标题】:Splitting large string in c# and adding values in it to a List在 C# 中拆分大字符串并将其中的值添加到列表中
【发布时间】:2020-07-16 06:58:14
【问题描述】:

我有一个如下所示的字符串

string names = "<?startname; Max?><?startname; Alex?><?startname; Rudy?>";

有什么方法可以拆分这个字符串并将 Max 、 Alex 和 Rudy 添加到单独的列表中?

【问题讨论】:

  • 你能在&lt;?startname; string.Split吗?

标签: c# .net string list split


【解决方案1】:

当然,拆分为两个字符串(所有始终在之前,所有始终在之后)并指定您希望拆分删除空:

var r = names.Split(new[]{ "<?startname; ", "?>" }, StringSplitOptions.RemoveEmptyEntries);

如果您取出 RemoveEmptyEntries,它会让您更清楚地了解拆分是如何工作的,但实际上如果没有它,您的名字就会散布在空字符串的数组条目中,因为 split 找到了一个分隔符( &lt;?...) 紧跟在另一个 (?&gt;) 之后,分隔符之间有一个空字符串

您可以阅读有关这种拆分形式 here 的大量信息 - 这是 netcore3.1 的直接链接,您可以在目录中更改您的版本 - 这种拆分的变体从 framework2.0 开始可用


您确实也说过“添加到单独的列表” - 没有看到任何代码,所以我想您会很高兴继续 r 这里是“单独的列表”(实际上是一个数组,但是可能足够等效且易于使用 LINQ 的 ToList() 进行转换(如果没有),或者如果您有另一个名称列表(确实是 List&lt;string&gt;),那么您可以 thatList.AddRange(r)

【讨论】:

    【解决方案2】:

    另一个想法是使用正则表达式

    以下正则表达式应该可以工作: (?&lt;=; )(.*?)(?=\s*\?&gt;)

    【讨论】:

      猜你喜欢
      • 2014-08-13
      • 1970-01-01
      • 2015-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 2017-08-29
      相关资源
      最近更新 更多