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(结果)是空的