从列表元素中获取Type
本文关键字:Type 获取 列表元素 | 更新日期: 2023-09-27 18:14:52
我有一个c# ListBox填充类"Human"的元素。每个元素都可以属于派生自Human的类,例如"Old"、"Young"。我想知道在ListBox中选择的元素是否为Old。我尝试使用。gettype(),但它给了我类型"字符串",因为是一个列表元素,而我想要的类型是"Old"或"Young"。
Thanks in advance
您可以使用is
-expression:
var query = myListBox.Items.Cast<Human>()
.Select(h => new { IsOld = h is Old, IsYoung = h is Young, Human = h });
Edit: "我想知道列表框中选择的元素是否为旧的"
那么你不需要LINQ查询:
Human human = (Human) myListBox.SelectedItem;
bool isOld = human is Old;
可以使用as
运算符
bool isOld = (listBox.SelectedItem as Old) != null;