使用字典函数替换字符串的语法错误

时间:2014-08-25 20:37:00

标签: c#

errors 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版吗?

我是否正确使用了分隔符?

2 个答案:

答案 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