2

これをよりコンパクトに書く方法はありますか?

return _searchRedirectionMap.ContainsKey(query) ? _searchRedirectionMap[query] : "";

_searchRedirectionMapとして定義される与えられたIDictionary<string,string>

4

2 に答える 2

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);
于 2012-07-08T12:46:56.443 に答える
0

メソッドを使用できますが、型TryGetValueに対して null を返します。string

_searchRedirectionMap.TryGetValue(key, out value);

ドキュメント: MSDN

于 2012-07-08T12:49:04.897 に答える