조건과 일치하는 IDictionary 개체의 모든 요소를 제거하려고합니다.IDictionary에서 조건과 일치하는 모든 항목 제거
예. IDictionary에는 키 세트와 해당 값이 들어 있습니다 (80 개의 오브젝트라고합시다). 키는 문자열이며, 값은 다른 유형일 수 있습니다 (directshow를 사용하여 wtv 파일에서 메타 데이터를 추출하는 것을 생각하십시오).
일부 키에는 "thumb"이라는 텍스트가 들어 있습니다. thumbsize, startthumbdate 등 IDictionary에서 모든 객체를 제거하려면 누구의 키에 thumb이라는 단어가 포함되어 있어야합니다.
여기서 볼 수있는 유일한 방법은 수동으로 .Remove 메서드를 사용하여 각 키 이름을 지정하는 것입니다.
키에 누가 thumb이라는 단어가 들어있는 모든 개체를 가져올 수있는 방법이 있으며 IDictionary 개체에서 제거합니다.
코드는 다음과 같습니다로
IDictionary sourceAttrs = editor.GetAttributes();
GetAttributes가 정의 : 나는 GetAttributes을 제어 할 수 없습니다
public abstract IDictionary GetAttributes();
, 그것이 IDictionary 개체를 반환거야, 난 단지로 내용을 알고 디버깅하는 동안 그것을보고. (가능성이 해시)
UPDATE : 팀에 대한 최종 답변 감사합니다 :
sourceAttrs = sourceAttrs.Keys.Cast<string>()
.Where(key => key.IndexOf("thumb", StringComparison.CurrentCultureIgnoreCase) == -1)
.ToDictionary(key => key, key => sourceAttrs[key]);
실제 유형은 무엇입니까? 실제로 그것이 일반 디디 션이라면 간단히 캐스팅 할 수 있습니다. 'as'연산자를 통해 try-cast 할 수 있습니다. 예를 들면 다음과 같습니다 :'var dict = sourceAttrs as Dictionary'. 캐스트가 작동하지 않으면 null입니다. –
모르겠다.가 포함 된 해시 테이블처럼 보입니다. –
rboy
질문 제목에 사용 된 언어에 대한 정보가 없으면 이해할 수없는 정보는 포함하지 마십시오. 태그는 이러한 용도로 사용됩니다. –