입니다 XMLMessage이 구조체입니다 사전에 설정 요소는 내가 Dictionary<string, XMLMessage>
를 비 웁니다 값을 할당하는 사전 개체와 DateTime 개체 사이의 간격 (초)입니다.LINQ 날짜 시간 값이 가장 오래된
어떤 시점에서 사전에 키를 유지해야하지만 가장 오래된 값은 비어 있어야합니다.
나는 이것을 시도했지만 제대로 된 것 같지 않습니다.
storedMessages.Where(x => x.Key.Contains("1")).OrderBy(s => s.Value.TimeRead).Skip(1)
감사
업데이트 : 나는 이런 식으로 뭔가를 할 수 있다고 생각하지만 의견
var j = storedMessages.Where(x => x.Key.Contains("1")).OrderByDescending(s => s.Value.TimeRead).First().Key;
storedMessages[j] = new XMLMessage();
얻고 싶었다
어떤 항목을 선택합니까? 그건 나에게 도움이 될 것 같아 ... – JustLoren
SortedDictionary 사용을 고려 했습니까? 들어오는 메시지는 storedMessages Dictionary에 항상 추가됩니다. 즉, 사전에 이미 추가 된 이전 DateTime보다 이전에 DateTime이있는 메시지를 추가하지 않으시겠습니까? 들어오는 메시지가 순차적이면 SortedDictionary를 단순히 증가 된 카운터로 키를 사용하면 항상 목록의 시작 부분에 "가장 오래된 항목"이 있다는 것을 의미합니다. 해당 항목의 DateTime 값을 비워두면 카운터 변수를 전진시켜 가장 오래된 항목을 가리키는 포인터를 갖게됩니다. – BillW
@BillW : 답변으로하지 않는 이유는 무엇입니까? –