これをよりコンパクトに書く方法はありますか?
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