これをよりコンパクトに書く方法はありますか?
return _searchRedirectionMap.ContainsKey(query) ? _searchRedirectionMap[query] : "";
_searchRedirectionMap
として定義される与えられたIDictionary<string,string>
これをよりコンパクトに書く方法はありますか?
return _searchRedirectionMap.ContainsKey(query) ? _searchRedirectionMap[query] : "";
_searchRedirectionMap
として定義される与えられたIDictionary<string,string>
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);
メソッドを使用できますが、型TryGetValue
に対して null を返します。string
_searchRedirectionMap.TryGetValue(key, out value);
ドキュメント: MSDN