나는 ConcurrentDictionary
을 가지고 있습니다. 나는 그 아이템을 조작하기 위해 그것의 AddOrUpdate
메소드를 사용한다.ConcurrentDictionary AddOrUpdate by 述語
제 질문은 AddOrUpdate
의 업데이트 매개 변수를 사용하여 if 문을 포함 할 수 있습니까? 예 : 내 ConcurrentDictionary
문자열 ID 및 DateTime 날짜 속성이 개체가 들어 있습니다.
내가 원했던 것 - 주어진 ID를 가진 객체가없는 경우 새 객체를 추가하십시오. - 새 객체의 Date가 기존 객체보다 크거나 같으면 업데이트하십시오. 아무것도하지 않는 것보다 적습니다. 내 예에서
:
Dictionary.AddOrUpdate(testObject.Id,testObject,(k, v) => v);
나는 원래 값을 반환하도록 updateValueFactory
람다이 될 것입니다이를 달성하기
(k, v) => v
if(v.Date >= existingItem.Date) (k, v) => v
else do nothing