我想在两个标签之间提取文本。 " 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);
答案 0 :(得分:2)
在.NET 4之前,String.Join
方法只有将数组作为第二个参数的重载。仅在.NET 4.0中引入了对IEnumerable<string>
的支持。
// 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());
答案 1 :(得分:1)
尝试:
string output = string.Join(" ", destList.ToArray());
答案 2 :(得分:1)
最有可能的是,您使用的是.NET 3.5或更低版本。在此版本string.Join
中只有two overloads。
您需要将列表转换为数组才能在此版本中传递它。
只需使用List<T>
的{{3}}方法:
string.Join(" ", destList.ToArray());
答案 3 :(得分:0)
您必须将其转换为ToArray()
string.join(" ",destList.ToArray());