从列表元素中获取Type

本文关键字:Type 获取 列表元素 | 更新日期: 2023-09-27 18:14:52

我有一个c# ListBox填充类"Human"的元素。每个元素都可以属于派生自Human的类,例如"Old"、"Young"。我想知道在ListBox中选择的元素是否为Old。我尝试使用。gettype(),但它给了我类型"字符串",因为是一个列表元素,而我想要的类型是"Old"或"Young"。

Thanks in advance

从列表元素中获取Type

您可以使用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;