从列表元素中获取类型c#

时间:2014-07-25 09:32:54

标签: c# listbox gettype

我有一个C#ListBox,里面填充了“Human”类的元素。 每个元素都可以是源自Human的类,例如“Old”,“Young”。 我想知道ListBox中选择的元素是否为Old。 我尝试使用.GetType(),但它给了我类型“字符串”因为列表 元素虽然我想要类型“旧”或“年轻”。

提前致谢

2 个答案:

答案 0 :(得分:5)

您可以使用is-expression

var query = myListBox.Items.Cast<Human>()
    .Select(h => new { IsOld = h is Old, IsYoung = h is Young, Human = h });

修改“我想知道ListBox中选择的元素是否为旧”

然后您不需要LINQ查询:

Human human = (Human) myListBox.SelectedItem;
bool isOld = human is Old;

答案 1 :(得分:3)

您可以使用as operator

bool isOld = (listBox.SelectedItem as Old) != null;