也许需要做的是“设计气味”,但是考虑到另一个问题,我想知道实现此逆的最干净的方法是什么:
foreach(ISomethingable somethingableClass in collectionOfRelatedObjects)
{
somethingableClass.DoSomething();
}
即如何获取/迭代所有未实现特定接口的对象?
大概您需要从上到最高级别开始:
foreach(ParentType parentType in collectionOfRelatedObjects)
{
// TODO: iterate through everything which *doesn't* implement ISomethingable
}
通过解决TODO来回答:以最干净/最简单和/或最有效的方式
最佳答案
这应该可以解决问题:
collectionOfRelatedObjects.Where(o => !(o is ISomethingable))