从列表中选择某种类型的元素(C#) [英] Select elements of certain type from list (c#)
本文介绍了从列表中选择某种类型的元素(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屋!
查看全文