C#:TryGetValue

📅 2026/6/23 12:32:12
C#:TryGetValue
在C#中TryGetValue是一个非常有用的方法通常用在字典Dictionary和某些其他集合类型中比如ConcurrentDictionary。这个方法允许你尝试从一个集合中获取与指定键相关联的值而不会抛出异常。如果键存在于集合中它会返回true并将值存储在提供的参数中如果键不存在它会返回false。1、字典Dictionary中的TryGetValue在Dictionary中使用TryGetValue的示例using System;using System.Collections.Generic;class Program{static void Main(){Dictionarystring, int ageDictionary new Dictionarystring, int{{ Alice, 30 },{ Bob, 25 }};if (ageDictionary.TryGetValue(Alice, out int age)){Console.WriteLine($Alice is {age} years old.);}else{Console.WriteLine(Age not found.);}if (ageDictionary.TryGetValue(Charlie, out int unknownAge)){Console.WriteLine($Charlie is {unknownAge} years old.);}else{Console.WriteLine(Charlies age not found.);}}}在这个例子中我们首先检查ageDictionary中是否存在键Alice。如果存在我们输出Alice的年龄如果不存在我们输出“Age not found”。同样的逻辑也适用于查找Charlie的年龄。2、ConcurrentDictionary中的TryGetValue在ConcurrentDictionary中使用TryGetValue的示例using System;using System.Collections.Concurrent;class Program{static void Main(){ConcurrentDictionarystring, int ageConcurrentDictionary new ConcurrentDictionarystring, int{{ Alice, 30 },{ Bob, 25 }};if (ageConcurrentDictionary.TryGetValue(Alice, out int age)){Console.WriteLine($Alice is {age} years old.);}else{Console.WriteLine(Age not found.);}}}在ConcurrentDictionary中使用TryGetValue的方式与在普通Dictionary中的使用方式相同。这是因为TryGetValue是许多集合类型中用于尝试获取值的标准方法。使用ConcurrentDictionary可以提供线程安全的操作这对于多线程环境下的数据访问非常重要。总结使用TryGetValue可以避免在尝试访问字典或集合中的值时抛出异常这在处理不确定键是否存在的情况下非常有用。这种方法既提高了代码的健壮性也使代码更加清晰易读。无论是处理简单的Dictionary还是需要线程安全的ConcurrentDictionaryTryGetValue都是一个非常实用的方法。