有没有办法把它写得更紧凑?
return _searchRedirectionMap.ContainsKey(query) ? _searchRedirectionMap[query] : "";
鉴于_searchRedirectionMap
被定义为IDictionary<string,string>
答案 0 :(得分:6)
您可以在IDictionary
上使用TryGetValue
方法编写扩展方法:
public static TValue GetValueOrDefault<TKey, TValue>(this IDictionary<TKey, TValue> source, TKey key, TValue defaultValue)
{
TValue outValue;
if (source.TryGetValue(key, outValue))
{
return outValue;
}
return defaultValue;
}
然后你可以像这样使用它:
return _searchRedirectionMap.GetValueOrDefault(query, string.Empty);
答案 1 :(得分:0)