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