【问题标题】:Code extract value for each line through the word通过单词的每一行的代码提取值
【发布时间】:2014-03-21 21:28:31
【问题描述】:

textbox1.text =

| 212.55.11.51:8080 | vpn | http |
| 212.55.11.52:8080 | rte | http |
| 212.55.11.53:8080 | dfg | http |
| 212.55.11.54:8080 | vpn | http |
| 212.55.11.55:8080 | vpn | http |
| 212.55.11.56:8080 | Tyu | http |
| 212.55.11.57:8080 | RFe | http |
| 212.55.11.58:8080 | vpn | http |

我需要工作代码。 当你写vpn这个词时。 通过 textbox2 对 Button 的压力。

IP 地址显示在该行中。 上面的示例进行 8 行的示例包含带有单词 vpn 的 4 行。

显示所有的IP Next
212.55.11.51
212.55.11.54
212.55.11.55
212.55.11.58

列表框内

【问题讨论】:

  • 到目前为止您尝试过什么?解决此问题的一种最佳方法是使用字典,其中键为“vpn”,然后保存一个值,该值将是 IP 地址列表。然后当你使用 ContainsKey("Vpn") 例如,然后你可以使用键索引器(即 myDict["Vpn"]) 来取回列表值,并为列表中的每个项目,将其添加到列表框。

标签: vb.net filter


【解决方案1】:

你可以使用 LINQ 和String.Split:

Dim lines = text.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
Dim matchingIPs = From line In lines
                  Let tokens = line.Split({"|"}, StringSplitOptions.RemoveEmptyEntries)
                  Let IP = tokens(0).Trim()
                  Let type = tokens(1).Trim()
                  Where type = "vpn"
                  Select IP.Split(":"c)(0).Trim()

listBox1.Items.AddRange(matchingIPs.ToArray())

【讨论】:

    猜你喜欢
    • 2023-01-12
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多