vb.net 从字符串逐行到列表框
vb.net from string to listbox line by line
我做了一个 webrequest
来获取网站的 html 代码,然后我提取了
htmlagilitypack
的通缉链接
像这样:
'webrequest'
Dim rt As String = TextBox1.Text
Dim wRequest As WebRequest
Dim WResponse As WebResponse
Dim SR As StreamReader
wRequest = FtpWebRequest.Create(rt)
WResponse = wRequest.GetResponse
SR = New StreamReader(WResponse.GetResponseStream)
rt = SR.ReadToEnd
TextBox2.Text = rt
'htmlagility to extract the links'
Dim htmlDoc1 As New HtmlDocument()
htmlDoc1.LoadHtml(rt)
Dim links = htmlDoc1.DocumentNode.SelectNodes("//*[@id='catlist-listview']/ul/li/a")
Dim hrefs = links.Cast(Of HtmlNode).Select(Function(x) x.GetAttributeValue("href", ""))
'join the `hrefs`, separated by newline, into one string'
textbox3.text = String.Join(Environment.NewLine, hrefs)
链接是这样的:
http://wantedlink1
http://wantedlink2
http://wantedlink3
http://wantedlink4
http://wantedlink5
http://wantedlink6
http://wantedlink7
现在我想将字符串中的每一行添加到列表框而不是文本框
每行一个项目
大约有 400 个 http://wantedlink
使用列表框项目集合的 AddRange 方法并将其传递给文本框的行数组。
提示:一行代码。
没关系,我找到答案了
Dim linklist = String.Join(Environment.NewLine, hrefs)
Dim parts As String() = linklist.Split(New String() {Environment.NewLine},
StringSplitOptions.None)
ListBox1.Items.AddRange(parts)
这会将所有 400 个链接添加到列表框
hrefs
在您的案例中已经包含 IEnumerable(Of String)
。将它们连接成一个字符串,然后再次将其拆分以使其工作是很奇怪的。由于 String.Split()
returns 数组,也许您只需要将 hrefs
投影到数组中即可使 .AddRange()
工作:
ListBox1.Items.AddRange(hrefs.ToArray())
我做了一个 webrequest
来获取网站的 html 代码,然后我提取了
htmlagilitypack
的通缉链接
像这样:
'webrequest'
Dim rt As String = TextBox1.Text
Dim wRequest As WebRequest
Dim WResponse As WebResponse
Dim SR As StreamReader
wRequest = FtpWebRequest.Create(rt)
WResponse = wRequest.GetResponse
SR = New StreamReader(WResponse.GetResponseStream)
rt = SR.ReadToEnd
TextBox2.Text = rt
'htmlagility to extract the links'
Dim htmlDoc1 As New HtmlDocument()
htmlDoc1.LoadHtml(rt)
Dim links = htmlDoc1.DocumentNode.SelectNodes("//*[@id='catlist-listview']/ul/li/a")
Dim hrefs = links.Cast(Of HtmlNode).Select(Function(x) x.GetAttributeValue("href", ""))
'join the `hrefs`, separated by newline, into one string'
textbox3.text = String.Join(Environment.NewLine, hrefs)
链接是这样的:
http://wantedlink1
http://wantedlink2
http://wantedlink3
http://wantedlink4
http://wantedlink5
http://wantedlink6
http://wantedlink7
现在我想将字符串中的每一行添加到列表框而不是文本框
每行一个项目
大约有 400 个 http://wantedlink
使用列表框项目集合的 AddRange 方法并将其传递给文本框的行数组。
提示:一行代码。
没关系,我找到答案了
Dim linklist = String.Join(Environment.NewLine, hrefs)
Dim parts As String() = linklist.Split(New String() {Environment.NewLine},
StringSplitOptions.None)
ListBox1.Items.AddRange(parts)
这会将所有 400 个链接添加到列表框
hrefs
在您的案例中已经包含 IEnumerable(Of String)
。将它们连接成一个字符串,然后再次将其拆分以使其工作是很奇怪的。由于 String.Split()
returns 数组,也许您只需要将 hrefs
投影到数组中即可使 .AddRange()
工作:
ListBox1.Items.AddRange(hrefs.ToArray())