使用LINQ的VB.net条件字符串拆分/解析

时间:2011-10-16 20:11:06

标签: vb.net string linq

我需要使用VB.NET解析和分离输入字符串。 Split方法适用于示例1,但我的问题是当我需要“跳过”空格时,如果列表中没有像Example2那样的值。我的代码按照预期为String1使用Split工作,但是当它输出EXT1000和3作为单独的值时它不能满足我的需要 - 如果在列表中找不到它们,它们应该是原始字符串的一部分。 如果可能的话,我宁愿把它留在Linq。生成某种类型的集合以用于以后的操作。主输出将以文本文件中的For Each“Results”WriteLine结束。

  

list = {“AB”, “CD”, “EFG”, “HI”, …. “MN”, “OP”, “QR”…}

(LINQ来自外部文件的结果。我还没有在我的代码中使用它,但我想我需要加入一些比较)

  • String1 =“ AB CD5 EFG10 HI2 AB ”(mC..Value.Split)
  • Results1:(multiCode)
  • AB (m)
  • CD5 (m)
  • EFG10 (m)
  • HI2 (m)
  • AB (m)

  • String2 =“ MN3 MN4 OP8 EXT1000 QR 3

  • 结果2:
  • MN3
  • MN4
  • OP8 EXT1000 (应跳过空格,因为“EXT”不在列表中)
  • QR 3 (应跳过空格,因为“3”不在列表中)

    Dim multiPoint As IEnumerable(Of XElement)= _                 来自mPoint In xdoc .... Reverse

    Dim multiCode = _             来自mC In multiPoint _                 从m In mC..Value.Split _                 选择m

    对于每个cd在multiCode中             Console.WriteLine(CD) 下一步

1 个答案:

答案 0 :(得分:0)

Dim MasterList As String() = {"AB", "CD", "EFG", "HI", "MN", "OP", "QR"}

Dim OtherList As String() = {"AB3", "CD4", "EFG1000", "3"}

Dim DesiredList As String() = (From strValueInMasterList As String In MasterList _
                               From strValueFromOtherList As String In OtherList _
                               Where strValueFromOtherList.StartsWith(strValueInMasterList) _
                               Select strValueFromOtherList).ToArray()