C#.NET 4.5.1
语法错误“'string.Join(string,string [])'的最佳重载方法匹配有一些无效的参数。
public string DictionaryReplace(string str, Dictionary<string, string> map)
{
var regex = new Regex(str.Join("|", map.Keys));
var newStr = regex.Replace(str, m => map[m.Value]);
return newStr;
}
这是因为我有.NET版吗?
我是否正确使用了分隔符?
答案 0 :(得分:0)
令人困惑的是,string
同时具有静态和实例join
方法。 (后者是继承IEnumerable<T>
所带来的扩展方法,和所有扩展方法一样,它们本身被定义为静态方法,但在实例级别运行。)
您正在使用的那个预期第二个参数属于string[]
类型。要使用该版本,您需要ToArray
:
str.Join("|", map.Keys).ToArray()
然而,您可以只使用静态方法而不是转换为数组:
string.Join("|", map.Keys)
答案 1 :(得分:-3)
已解决。目标框架已设置为3.5。我把它设置为4.5,它工作。很抱歉的人。感谢大家的帮助。我过去只使用过注册表来确定我使用的版本。我很幸运能够认为我使用的是4.5