C# 从网站下载字符串,检查每一行是否包含字符串
我创建了一个包含以下纯文本的简单页面:C# 从网站下载字符串,检查每一行是否包含字符串,c#,string,winforms,web,download,C#,String,Winforms,Web,Download,我创建了一个包含以下纯文本的简单页面: Line 1 Line 2 Line 3 Line 4 我制作了一个包含文本框的c#Winform应用程序 文本框文本类似于 Line 1 Line 2 我想检查文本框行是否包含从我的网站下载的任何字符串 这是我试过但不起作用的 intpub=0; int priv=0; WebClient数据=新的WebClient(); 字符串回复=数据。下载字符串(“http://mytoosupd.000webhostapp.com/public-keys.h
Line 1
Line 2
Line 3
Line 4
我制作了一个包含文本框的c#Winform应用程序
文本框文本类似于
Line 1
Line 2
我想检查文本框行是否包含从我的网站下载的任何字符串
这是我试过但不起作用的
intpub=0;
int priv=0;
WebClient数据=新的WebClient();
字符串回复=数据。下载字符串(“http://mytoosupd.000webhostapp.com/public-keys.html");
对于(int i=0;i
而不是继续
您可以在那里中断
。在你的情况下,如果,你不需要。只有else
可以工作。如果您的目标只是检查,那么您可以使用bool
变量,而不是int
Split
,Intersect
,任何都很简单
string reply = data.DownloadString(..);
var result = reply
.Split(new[] {"\r\n", "\r", "\n"}, StringSplitOptions.RemoveEmptyEntries)
.Intersect(textBox1.Lines)
.Any();
Debug.WriteLine($"Found = {result}");
更新
// to get a list of the intersected lines, call `ToList()` instead
var list = reply
.Split(new[] {"\r\n", "\r", "\n"}, StringSplitOptions.RemoveEmptyEntries)
.Intersect(textBox1.Lines)
.ToList();
// list.Count() to get the count
// use this list where ever you like
// someTextBox.Text = String.Join(Environment.NewLine, list);
// or potentially
// someTextBox.Lines = list.ToArray();
它总是像else一样返回,如果用调试器检查变量,它不会签入!!您将本地winform行与整个下载的多行进行比较…我把它放在哪里?无论您喜欢在哪里,Result
都会包含一个bool(真/假),说明回复是否与文本框中的行相交OK明白了,现在我想用int表示有多少选中的行,并将选中的行粘贴到另一个文本框中?@HarethMK,而不是Any
使用ToList
这将得到相交的行,即两个源之间相同的行。您可以将结果放入新的文本框中,或调用计数以获取。。。countI做了,但它说不能将列表转换为字符串,我把它改为字符串,但textbox2(结果)是空的