最好的重载方法匹配'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);
在。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());