Как определить, содержит ли коллекция предметы определенного типа? - PullRequest
0 голосов
/ 07 ноября 2011

все, у меня есть вопрос, Как определить, содержит ли коллекция предметы определенного типа? Например, у меня есть ItemCollection ItemControl

var items = comboBox.Items;

Мне нужно знать, какой тип предмета в коллекции Предметов является моим вопросом

например, мне нужно определить, Предметы - коллекция предметов типа строки или DependencyObject или другой тип.

Помогите, пожалуйста, решить эту проблему. Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 07 ноября 2011

легко с Linq:

var itemsOfTypeString = comboBox.Items.OfType<string>();
var itemsOfTypeDependencyObject = comboBox.Items.OfType<DependencyObject>();
3 голосов
/ 07 ноября 2011
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 голосов
/ 07 ноября 2011
        foreach (object item in comboBox.Items)
        {
            if (item.GetType() == typeof(string))
            {
                //DoYourStuff
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...