溫馨提示×

c# trygetvalue 能改進嗎

c#
小樊
130
2024-11-23 09:12:16
欄目: 編程語言

TryGetValue 是 C# 中的一個非常有用的方法,用于在字典(Dictionary)或哈希表(Hashtable)中嘗試獲取一個鍵(key)對應的值(value)。如果鍵存在,則返回該值;否則返回默認值。

雖然 TryGetValue 已經非常簡潔和高效,但你仍然可以通過擴展方法(extension method)來為其添加一些額外的功能,使其更加靈活和易用。以下是一個簡單的示例:

public static class DictionaryExtensions
{
    public static bool TryGetValue<TKey, TValue>(this IDictionary<TKey, TValue> dictionary, TKey key, out TValue value)
    {
        return dictionary.TryGetValue(key, out value);
    }

    public static bool TryGetValue<TKey, TValue>(this IDictionary<TKey, TValue> dictionary, TKey key, TValue defaultValue, out TValue value)
    {
        return dictionary.TryGetValue(key, out value) ? value : defaultValue;
    }
}

這兩個擴展方法分別與原始的 TryGetValue 方法具有相同的功能,但第二個方法允許你指定一個默認值,當指定的鍵不存在時返回該默認值。這使得代碼更具可讀性,因為你可以清楚地看到哪個值是預期的默認值。

要使用這些擴展方法,只需將它們添加到你的項目中,并在需要的地方調用它們,如下所示:

var dictionary = new Dictionary<string, int>
{
    { "apple", 1 },
    { "banana", 2 },
    { "orange", 3 }
};

int value;

// 使用原始 TryGetValue 方法
bool result1 = dictionary.TryGetValue("apple", out value); // true
result1 = dictionary.TryGetValue("grape", out value); // false

// 使用擴展方法
bool result2 = dictionary.TryGetValue("apple", out value); // true
result2 = dictionary.TryGetValue("grape", out value); // false
bool result3 = dictionary.TryGetValue("grape", 0, out value); // true,返回默認值 0

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女