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