我想知道是否有一个foreach版本只检查特定类型并返回它.
例如,考虑这个类树:
org.clixel.ClxBasic - > org.clixel.ClxObject - > org.clixel.ClxSprite - > WindowsGame1.test
然后考虑这段代码
public List<ClxBasic> objects = new List<ClxBasic>();
foreach(GroupTester tester in objects)
{
tester.GroupTesterOnlyProperty = true;
}
Run Code Online (Sandbox Code Playgroud)
tester.GroupTesterOnlyProperty是在GroupTester中创建的属性.有没有办法让像这样的工作,比如foreach的重载,或者另一个可能对我有帮助的片段?我希望程序员能够轻松地对列表进行排序,只获取他们需要的类型.
您可以使用对象的OfType<T>扩展方法IEnumerable<T>.
你的循环可能如下所示:
foreach(GroupTester tester in objects.OfType<GroupTester>())
{
tester.GroupTesterOnlyProperty = true;
}
Run Code Online (Sandbox Code Playgroud)
注意:这假定GroupTester继承自ClxBasic.
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |