最好的重载方法匹配'string.加入(string, string []) & # 39;有一些无效参数

本文关键字:string 无效 参数 加入 方法 重载 | 更新日期: 2023-09-27 18:09:58

我想提取两个标签之间的文本。"txtReadfile"包含许多标签。我想提取每个标签中出现的所有文本。

我使用了以下代码。但是当我运行它时,它给出了错误:

Error # Error1 "The best overloaded method match for 'string.Join(string, string[])' has some invalid arguments"
Error #  "Argument '2': cannot convert from 'System.Collections.Generic.List<string>' to 'string[]' "

你能帮我调试一下吗?

List<string> destList = new List<string>();
string me = " <ts>(.*?)<t>";
string text =txtReadfile.Text;
foreach (Match match in Regex.Matches(text, me))
destList.Add(match.Groups[1].Value);
string output= string.Join(" ", destList);
MessageBox.Show(output);

最好的重载方法匹配'string.加入(string, string []) & # 39;有一些无效参数

在。net 4之前,String.Join方法只有以数组作为第二个参数的重载。对IEnumerable<string>的支持是在。net 4.0中引入的。

// From .NET 2.0:
Join(String, String[])
Join(String, String[], Int32, Int32)
Join(String, Object[])
// From .NET 4.0:
Join(String, IEnumerable<String>)
Join<T>(String, IEnumerable<T>)

因此,如果您的目标是较早的框架,则需要调用列表中的ToArray以将其转换为string[]:

string output= string.Join(" ", destList.ToArray());

Try with:

string output = string.Join(" ", destList.ToArray());

最有可能的是,您正在使用。net 3.5或以下版本。在这个版本中,string.Join只有两个重载。

你需要把你的列表转换成数组,以便在这个版本中传递它。

直接使用List<T>ToArray方法:

string.Join(" ", destList.ToArray());

您必须将其转换为ToArray()

string.join(" ",destList.ToArray());