我是 LINQ 的新手,并试图掌握它。
到目前为止,它对于各种事情都很有用,例如减少所需的代码,例如.ForEach()
在每个对象上运行函数时。
现在我试图从主列表中获取所有对象的列表,当它们的IsMouseOver()
函数返回 true 时。
作为标准foreach
,它看起来像这样:
this.m_EntHovered.Clear();
foreach (EntEditor ent in this.m_EntAll)
{
if (ent.IsMouseOver(mousePos))
this.m_EntHovered.Add(ent);
}
但是我想使用 LINQ 来缩短它,但是我能得到的最短时间并没有缩短多少:
this.m_EntHovered = (from ent in this.m_EntAll
where ent.IsMouseOver(input)
select ent).ToList<EntEditor>();
有没有更好的方法来实现我所追求的或者我做得很好?