从列表中选择某种类型的元素(C#) [英] Select elements of certain type from list (c#)

查看:64
本文介绍了从列表中选择某种类型的元素(C#)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的主班有一份陷阱"清单.在子类火焰"中,我想从该列表中删除某些元素.问题是,如何选择这些元素?陷阱确实具有其他具有不同属性的子类别.

I have a list of "traps" in my main class. In the subclass "Flame" I want to delete certain elements from that list. The problem is, how do I select these elements? Trap does have other sublasses with different attributes.

这就是我到目前为止(简化的代码,来自"Flame.cs"):

This is what I got so far (code simplified, from "Flame.cs"):

public override Boolean collide()
{
    var flames = form1.traps.Where(trap => trap.ID == ID);
    foreach (Flame f in flames)
    {
        if (f.pos > pos)
        {
            form1.traps.Remove(f);
        }
    }
    return true;
}

我觉得我应该知道这一点,但是atm我被卡住了:/

I feel like I should know this, but atm I'm stuck :/

推荐答案

您可以使用

You can use the OfType extension method.

public override Boolean collide()
{
    var flames = form1.traps.Where(trap => trap.ID == ID)
                            .OfType<Flame>()
                            .Where(f => f.pos > pos)
                            .ToList();

    foreach (Flame flame in flames)
    {
        form1.traps.Remove(flame);
    }

    return true;
}

这篇关于从列表中选择某种类型的元素(C#)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆