‘string.Join(string,string )’的最佳重载方法匹配有一些无效的参数

我想在两个标签之间提取文本。 “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' to 'string[]' " 

你能帮我调试一下吗?

 List destList = new List(); string me = " (.*?)"; 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 output = string.Join(" ", destList.ToArray()); 

在.NET 4之前, String.Join方法只有重载,它将数组作为第二个参数。 仅在.NET 4.0中引入了对IEnumerable支持。

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

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

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

最有可能的是,您使用的是.NET 3.5或更低版本。 在这个版本string.Join只有两个重载 。

您需要将列表转换为数组才能在此版本中传递它。

只需使用ListToArray方法:

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

你必须将它转换为ToArray()

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