2016-06-25 4 views
1

동적으로 채워지는 관찰 가능 모음이 있습니다. 나는 events이라는 항목 목록을 통해 그것을 채 웁니다. 이벤트 목록에서 이벤트를 삭제할 수있는 상황이 있으며이 경우 이벤트를 관찰 가능한 컬렉션에서 제거해야합니다.항목이 관찰 가능 모음에 있는지 확인하십시오.

내가 찾고있는 것은이 작업을 수행하는 간단하고 빠른 방법입니다.

bool exist = events.Where(x => x.Home == obCollection[x].Home).Any(); 

하지만 인덱스를 필요로하기 때문에 나는 x 요소를 통해 obCollection에 액세스 할 수 있으며, x 실제 항목입니다 : 나는 다음 시도했다. 올바른 요소를 생성하려면이 문제를 해결해야하며 이후에 observable 컬렉션의 나머지 요소를 제거해야합니다.

+0

은 그래서 당신은'obCollection'을 events''에서 항목을 삭제해야하고 모두 동일한'index'에서이 컬렉션? 또는 둘 다'Home'에 대해 같은 값을 가지고 있습니까? – user3185569

+0

이벤트가 자동으로 업데이트되어 이미 항목이 삭제되었습니다. 이벤트 항목이 obCollection에 없는지 확인하고 obCollection에서 제거하십시오. – pollonz

+0

예, 둘 다 동일한 값을 가정에 가지고 있습니다. – pollonz

답변

2

죄송합니다. 첫 번째 대답은 다른 방향이었습니다.

그래서 당신은 자동으로 events 목록에서 제거 된 것을 ObservableCollection에서 제거해야합니다

var notFoundInEvents = obCollection.Where(x => !(events.Any(o => o.Home == x.Home))).ToList(); 

foreach (var toBeRemoved in notFoundInEvents) 
{ 
    obCollection.Remove(toBeRemoved); 
} 
+0

아주 좋지만 이것은 확인 조건 일 뿐이며 모든 항목을 삭제합니까? 나는 == 거짓 상태를 이해하지 못한다. 약간의 설명을 해주실 수 있겠습니까? – pollonz

+0

@pollonz 위의 편집 내용을 확인하십시오. 명확하지 않은 경우 알려주십시오. – user3185569

+0

아아아, 알았어. 그 항목은 removeAll이 obCollection에서 제거 할 것을 찾지 못했고, 이제는 분명하다. 감사합니다. – pollonz

관련 문제