gpt4 book ai didi

c# - 在 ConcurrentDictionary AddOrUpdate 中为更新部分添加什么

转载 作者:IT王子 更新时间:2023-10-29 03:36:01 26 4
gpt4 key购买 nike

我正在尝试使用 Dictionary 重写一些代码以使用 ConcurrentDictionary。我查看了一些示例,但在实现 AddOrUpdate 函数时仍然遇到问题。这是原始代码:

    dynamic a = HttpContext;
Dictionary<int, string> userDic = this.HttpContext.Application["UserSessionList"] as Dictionary<int, String>;

if (userDic != null)
{
if (useDic.ContainsKey(authUser.UserId))
{
userDic.Remove(authUser.UserId);
}
}
else
{
userDic = new Dictionary<int,string>();
}
userDic.Add(authUser.UserId, a.Session.SessionID.ToString());
this.HttpContext.Application["UserDic"] = userDic;

我不知道要为更新部分添加什么:

userDic.AddOrUpdate(authUser.UserId,
a.Session.SessionID.ToString(),
/*** what to add here? ***/);

如有任何指点,我们将不胜感激。

最佳答案

您需要传递一个 Func,它返回要在更新时存储在字典中的值。我想在你的情况下(因为你不区分添加和更新)这将是:

var sessionId = a.Session.SessionID.ToString();
userDic.AddOrUpdate(
authUser.UserId,
sessionId,
(key, oldValue) => sessionId);

Func 始终返回 sessionId,以便 Add 和 Update 设置相同的值。

顺便说一句:the MSDN page 上有一个示例.

关于c# - 在 ConcurrentDictionary AddOrUpdate 中为更新部分添加什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7028919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com