假设我具有以下设置:
interface IColor { }
interface IRedColor : IColor { }
现在有一个集合,例如List<IColor> list
当我现在想对实现接口IRedColor
(如果有)的列表中的第一项做些事情时,我想到的最简单的方法是:
if (list.FirstOrDefault(c => c is IRedColor) is IRedColor redItem)
redItem.DoRedItemStuff();
但这需要对接口实现进行两次检查,而且看起来有点难看。
还有其他更有效,更清晰的方法来获取和使用此项吗?