‘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
只有两个重载 。
您需要将列表转换为数组才能在此版本中传递它。
只需使用List
的ToArray
方法:
string.Join(" ", destList.ToArray());
你必须将它转换为ToArray()
string.join(" ",destList.ToArray());