2

有没有办法写得更紧凑?

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

Givent_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 回答