C# 如何返回字符串列表的值? private void按钮3\u单击(对象发送者,事件参数e) { 螺纹t=新螺纹( ()=>textBox4.AppendText(getman(textBox3.Text)); t、 Start(); } 列表getman(字符串url) { 列表结果=新列表(); 尝试 { HttpWebRequest r=(HttpWebRequest)WebRequest.Create(url); r、 UserAgent=“Mozilla/5.0(Windows NT 10.0;WOW64;rv:51.0)Gecko/20100101 Firefox/51.0”; r、 方法=“获取”; HttpWebResponse res=(HttpWebResponse)r.GetResponse(); StreamReader sr=新的StreamReader(res.GetResponseStream()); 字符串oku=sr.ReadToEnd(); Regex Regex=new Regex(textBox1.Text+“(.*?”+textBox2.Text); MatchCollection m=regex.Matches(oku); foreach(匹配单位为m) { result.Add(match.Groups[1].ToString()+“\r\n”); } res.Close(); 高级关闭(); } 捕获{} 返回结果; }

C# 如何返回字符串列表的值? private void按钮3\u单击(对象发送者,事件参数e) { 螺纹t=新螺纹( ()=>textBox4.AppendText(getman(textBox3.Text)); t、 Start(); } 列表getman(字符串url) { 列表结果=新列表(); 尝试 { HttpWebRequest r=(HttpWebRequest)WebRequest.Create(url); r、 UserAgent=“Mozilla/5.0(Windows NT 10.0;WOW64;rv:51.0)Gecko/20100101 Firefox/51.0”; r、 方法=“获取”; HttpWebResponse res=(HttpWebResponse)r.GetResponse(); StreamReader sr=新的StreamReader(res.GetResponseStream()); 字符串oku=sr.ReadToEnd(); Regex Regex=new Regex(textBox1.Text+“(.*?”+textBox2.Text); MatchCollection m=regex.Matches(oku); foreach(匹配单位为m) { result.Add(match.Groups[1].ToString()+“\r\n”); } res.Close(); 高级关闭(); } 捕获{} 返回结果; },c#,C#,它给出了以下错误: private void button3_Click(object sender, EventArgs e) { Thread t = new Thread( () => textBox4.AppendText(getman(textBox3.Text))); t.Start(); } List<string> getman(

它给出了以下错误:

private void button3_Click(object sender, EventArgs e)
        {
            Thread t = new Thread(
                () => textBox4.AppendText(getman(textBox3.Text)));
            t.Start();


        }

        List<string> getman(string url)
        {
            List<string> result = new List<string>();

            try
            {
                HttpWebRequest r = (HttpWebRequest)WebRequest.Create(url);
                r.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
                r.Method = "GET";
                HttpWebResponse res = (HttpWebResponse)r.GetResponse();
                StreamReader sr = new StreamReader(res.GetResponseStream());
                string oku = sr.ReadToEnd();

                Regex regex = new Regex(textBox1.Text + "(.*?)" + textBox2.Text);
                MatchCollection m = regex.Matches(oku);
                foreach (Match match in m)
                {
                    result.Add(match.Groups[1].ToString() + "\r\n");
                }

                res.Close();
                sr.Close();

            }
            catch {  }

            return result;
        }
错误“System.Windows.Forms.TextBoxBase.AppendText(string)”的最佳重载方法匹配具有一些无效参数
错误参数1:无法从“System.Collections.Generic.List”转换为“string”
正如MSDN所说()
Append
方法没有像您尝试做的那样为
列表
重载。这是你的主要问题

我不知道你想用这些代码完成什么,但如果你想让你的文本框中充满你的列表,下面是一个如何用逗号分隔每个项目的示例:

Error The best overloaded method match for 'System.Windows.Forms.TextBoxBase.AppendText(string)' has some invalid arguments
Error Argument 1: cannot convert from 'System.Collections.Generic.List<string>' to 'string'
stringgetman(字符串url)
{
列表结果=新列表();
尝试
{
HttpWebRequest r=(HttpWebRequest)WebRequest.Create(url);
r、 UserAgent=“Mozilla/5.0(Windows NT 10.0;WOW64;rv:51.0)Gecko/20100101 Firefox/51.0”;
r、 方法=“获取”;
HttpWebResponse res=(HttpWebResponse)r.GetResponse();
StreamReader sr=新的StreamReader(res.GetResponseStream());
字符串oku=sr.ReadToEnd();
Regex Regex=new Regex(textBox1.Text+“(.*?”+textBox2.Text);
MatchCollection m=regex.Matches(oku);
foreach(匹配单位为m)
{
result.Add(match.Groups[1].ToString()+“\r\n”);
}
res.Close();
高级关闭();
}
捕获{}
返回字符串.Join(“,”,result.ToArray());
}
除此之外,即使您的代码看起来正常,您也在执行线程工作,操作在另一个线程中创建的UI控件,因为您访问它们的线程就在那里声明。对于对UI的线程安全调用,请检查以下内容:


您必须循环浏览列表并分别附加每个字符串:

    string getman(string url)
    {
        List<string> result = new List<string>();

        try
        {
            HttpWebRequest r = (HttpWebRequest)WebRequest.Create(url);
            r.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";
            r.Method = "GET";
            HttpWebResponse res = (HttpWebResponse)r.GetResponse();
            StreamReader sr = new StreamReader(res.GetResponseStream());
            string oku = sr.ReadToEnd();

            Regex regex = new Regex(textBox1.Text + "(.*?)" + textBox2.Text);
            MatchCollection m = regex.Matches(oku);
            foreach (Match match in m)
            {
                result.Add(match.Groups[1].ToString() + "\r\n");
            }

            res.Close();
            sr.Close();

        }
        catch {  }

        return String.Join(",", result.ToArray());
    }

此外,控件对用于这些内容的线程非常挑剔。在一切正常运行之前,您可能需要调用TextBox4控件。

getman
返回一个列表,您希望它做什么?
foreach(string line in getman(TextBox3.Text))
{
    TextBox4.AppendText(line);
}