2011-11-07 5 views
-2

모두, 질문이 있습니다 컬렉션에 특정 유형의 항목이 포함되어 있는지 확인하는 방법은 무엇입니까? 예를 들어 나는 내가 경우 항목을 결정해야합니다 예를 들어 내 질문에컬렉션에 특정 유형의 항목이 포함되어 있는지 확인하는 방법은 무엇입니까?

이라는 항목 컬렉션에서 항목의 유형을 알 필요가 ItemControl

var items = comboBox.Items; 

의 ItemCollection이 항목 유형의 모음입니다 문자열 또는 DependencyObject 또는 다른 형식의.

이 문제를 해결하십시오. 미리 감사드립니다.

+2

그래서, 정확히 구현 어디에 실패하는 ? – Heinzi

+0

내 질문에 업데이트를 참조하십시오. – Serghei

+0

죄송 합니다만, 나는 아직도 귀하의 질문을 이해하지 못합니다. 현재 접근 방식에 어떤 문제가 있습니까? – Heinzi

답변

3
List<Type> types = (from item in comboBox.Items select item.GetType()).Distinct(); 

이 콤보 상자 항목에 나타나는 모든 유형의 목록을 얻을 수 있습니다.

당신은 단지 하나 개의 특정 유형을 목록에 표시할지 여부를 테스트하려면 다음을 수행 할 수

bool containsStrings = comboBox.Items.OfType<string>.Any() 
bool containsDependencyObjects = comboBox.Items.OfType<DependencyObject>.Any() 
2
 foreach (object item in comboBox.Items) 
     { 
      if (item.GetType() == typeof(string)) 
      { 
       //DoYourStuff 
      } 
     } 
+0

답변 해 주셔서 감사하지만 문제가 해결되지 않음 . – Serghei

4

쉽게 Linq에 함께 :

var itemsOfTypeString = comboBox.Items.OfType<string>(); 
var itemsOfTypeDependencyObject = comboBox.Items.OfType<DependencyObject>(); 
관련 문제