- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个ConcurrentDictionary
。我使用它的 AddOrUpdate
方法来操作它的项目。
我的问题是:是否可以使用 AddOrUpdate
的更新参数来包含 if 语句?例如。我的 ConcurrentDictionary
包含具有字符串 Id 和 DateTime Date 属性的对象。
我愿意- 如果具有给定 Id 的对象不存在,则向其中添加一个新对象- 如果新对象的日期等于或大于现有对象,则更新它,如果小于,则不执行任何操作。
在我的例子中:
Dictionary.AddOrUpdate(testObject.Id,testObject,(k, v) => v);
我应该改变
(k, v) => v
到
if(v.Date >= existingItem.Date) (k, v) => v
else do nothing
最佳答案
v
是当前存在于集合中的值,所以什么也不做只是返回它。
Dictionary.AddOrUpdate(testObject.Id,testObject,(k, v) =>
(v.Date >= existingItem.Date) ? testObject : v);
更具可读性:
Dictionary.AddOrUpdate(testObject.Id,testObject,(k, v) =>
{
if(v.Date >= existingItem.Date)
return testObject;
else
return v;
});
关于c# - ConcurrentDictionary AddOrUpdate 按谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9570110/
我正在使用基于代码优先 DBContext 的 EF5 设置。 在 DbMigrationsConfiguration.Seed 中,我试图用默认的虚拟数据填充数据库。为完成此任务,我使用了 DbSe
ConcurrentDictionary Pitfall - Are delegates factories from GetOrAdd and AddOrUpdate synchronized?注意
我有一个ConcurrentDictionary。我使用它的 AddOrUpdate 方法来操作它的项目。 我的问题是:是否可以使用 AddOrUpdate 的更新参数来包含 if 语句?例如。我的
我在我的种子方法中使用 AddOrUpdate 来保持我的权限是最新的,但是,在以下代码更新现有角色(而不是创建它)的情况下,我创建的任何新权限都不会添加到角色。我做错了什么? foreach (Ke
下面是我正在尝试做的事情: 我有 users 表和 user_profiles 表,我在 users 中插入 name、email 表和 phone, address, .... etc 在 user
所以我想做的是添加或更新用户,具体取决于该用户是否已存在于我的种子方法中。 我希望条件是如果具有名字和姓氏的用户已经存在但添加 && 似乎不起作用。 foreach (User user in use
我有 2 个类: class RealmUser: Object { @objc dynamic var id: String = "" @objc dynamic var age:
我正在使用下面的这段代码来尝试根据字典对象的键更新字典对象中的值。 public static ConcurrentDictionary UsersViewModel = new Concurrent
假设如下代码: if (myDictionary.ContainsKey(aKey)) myDictionary[aKey] = aValue; else myDictionary.A
我在播种数据时遇到了一些问题,我能够通过一个非常小的应用程序重现该问题。 假设你有这个种子方法: protected override void Seed(JunkContext contex
我正在按照说明进行操作 here试图 mock 我的 DbSet和 DbContext使用 Moq 进行单元测试。 我正在测试的服务如下所示 public class MyItemService {
IDbSetExtensions.AddOrUpdate 旨在帮助编写无论数据库是空的还是已填充的代码都可以正常工作。但是链接对象需要不同的代码。当数据库为空时,对象还没有 ID,您可以通过分配导航属
private readonly ConcurrentDictionary _colorSet; public void BuildColorSet(IList colorNames, st
这可能是一个简单的问题,但我是 Code First 和迁移的新手,所以请多多包涵。我会将示例代码保持在最低限度以显示问题: 我有一个 BaseAuditableEntity,其中包括这个(除其他外,
在当前项目中,我通过两种方式为并发字典中的现有键赋值。 一个。 concurrentDictionary1[key] = value; 和 B. concurrentDictionary2.AddOr
我有一个实体如下: public class PaletteColor { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Ident
这就是我们拥有的: public class Car { public int Id { get; set; } public Engine Engine { get;
我在 C# 中使用并发字典 addOrUpdate。问题是这个字典不是在维护整个字典(列表),而是它只将最后一条记录添加或更新到字典中,并且该记录在字典中多次找到;我在 foreach 循环中遍历了它
这个问题一直是我周末的噩梦...我有一个表,其中 AddOrUpdate 无法正常工作,它一直在添加但从不更新。 我想做的就是当我使用 AddOrUpdate 将新实体添加到表中时,我希望它检查 Ap
我尝试在 ConcurrentDictionary 中使用 AddOrUpdate 方法。 来自本页的“备注”部分 https://msdn.microsoft.com/en-us/library/d
我是一名优秀的程序员,十分优秀!