如何将ContainsKey转换为TryGetValue

时间:2018-03-20 15:43:42

标签: c# asp.net

我试图找出将以下语句转换为trygetvalue的方法。

非常感谢任何帮助。

filters.ContainsKey("companyCode") ? filters["companyCode"] : string.Empty;

我有我继承的代码,其中包含大约25个构建一个查询语句的代码。

2 个答案:

答案 0 :(得分:6)

您必须创建if语句,以便在找不到过滤器的情况下指定默认值:

对于C#7:

if (!filters.TryGetValue("companyCode", out string value))
    value = string.Empty;

前C#7:

string value;

if (!filters.TryGetValue("companyCode", out value))
    value = string.Empty;

答案 1 :(得分:4)

使用C#7,您可以使用这一个衬垫:

string result = filters.TryGetValue("companyCode", out string code) ? code : string.Empty;

如果您不能使用内联out变量,则需要两行:

string code;
string result = filters.TryGetValue("companyCode", out code) ? code : string.Empty;