c#

c# trygetvalue 能简化吗

小樊
82
2024-11-23 09:14:14
栏目: 编程语言

在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的用法。

0
看了该问题的人还看了