在Java中,HashMap有一个方法叫做
(
我可以手动实现它。
computeIfAbsent
,如果找不到该值,则使用给定的函数计算它。 但是在C#的Dictionary中没有类似的东西。(
TryAdd
类似,但我想避免在字典中存在值时重新计算该值。)我可以手动实现它。
public static V ComputeIfAbsent<K, V>(this Dictionary<K, V> dict, K key, Func<K, V> generator) {
bool exists = dict.TryGetValue(key, out var value);
if (exists) {
return value;
}
var generated = generator(key);
dict.Add(key, generated);
return generated;
}
但我不想写与核心库重复的内容。