小编qou*_*all的帖子

Java Map 的“computeIfAbsent”在 C# 字典中相当于什么?

在 Java 中,HashMap 有一个方法computeIfAbsent,如果没有找到该值,则使用给定的函数计算该值。但是,我在 C#'s 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;
}
Run Code Online (Sandbox Code Playgroud)

但我不想向核心库写入重复的内容。

c# java clr

6
推荐指数
1
解决办法
1125
查看次数

标签 统计

c# ×1

clr ×1

java ×1