2011-10-16 126 views
0

我需要使用VB.NET解析和分隔输入字符串。 Split方法在例1中起作用,但是我的问题是当我需要“跳过”一个空格时,如果下面的值不在像Example2那样的列表中。我的代码按照预期的方式对使用Split的String1起作用,但是当它输出EXT1000和3作为单独的值时,它会失败我的需求 - 如果在列表中找不到它们,它们应该是原始字符串的一部分。 如果可能,我宁愿保留在Linq中。生成某些类型的集合以供以后操作。主输出将以文本文件中的For Each“Results”WriteLine结束。VB.net条件字符串拆分/使用LINQ解析

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

(从外部文件从结果LINQ,我不会在我的代码中使用它,但我想我会需要纳入一些比较)

  • (多码)
  • AB(米)
  • CD5(米)
  • EFG10(米)
  • HI2(米)
  • AB(米)

  • String2的=“MN3 MN4 OP8 EXT1000 QR 3

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

    Dim multiPoint As IEnumerable(Of XElement)= _ 从M点在.... XDOC反向

    昏暗多码= _ 从的MC多点_ 从米在mC..Value.Split _ 选择米

    对于每个CD在多码 控制台。的WriteLine(CD) 接下来

回答

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()