在C#中,TryGetValue
方法用于尝试从字典(Dictionary)或集合(Dictionary-like collection)中获取一个值,如果键不存在,则返回默认值。虽然TryGetValue
方法已经很简洁了,但你仍然可以使用扩展方法(extension method)来进一步简化代码。
下面是一个使用扩展方法的示例:
public static class DictionaryExtensions
{
public static TValue GetValueOrDefault<TKey, TValue>(this IDictionary<TKey, TValue> dictionary, TKey key, TValue defaultValue)
{
return dictionary.TryGetValue(key, out TValue value) ? value : defaultValue;
}
}
使用这个扩展方法后,你可以像下面这样简化TryGetValue
的调用:
var dictionary = new Dictionary<string, int>
{
{ "apple", 1 },
{ "banana", 2 }
};
int value = dictionary.GetValueOrDefault("apple", 0); // value will be 1
int nonExistentValue = dictionary.GetValueOrDefault("orange", 0); // value will be 0
这样,你就可以通过调用GetValueOrDefault
方法来简化TryGetValue
的用法。