[英]How can I check if a particular property setter is called on a Mock object?
[英]How can I check a List collection for an object that has a particular property?
我有一个List<IAgStkObject>
。 每个IAgStkObject
都有一个名为InstanceName
的属性。 如何搜索我的列表以查找是否有任何包含的IAgStkObject具有特定的InstanceName? 在过去我会使用foreach循环..但这似乎太慢了。
WulfgarPro
如果您唯一拥有的是List(不是由InstanceName排序),则没有更快的方法(如果经常进行类似的测试,您可以预处理数据并创建例如由InstanceName索引的Dictionary)。
与“过去”不同的唯一方法是那些有用的扩展方法,允许你只写
return myList.Any(item => item.InstanceName == "Searched name");
如果列表按InstanceName排序,则可以使用二进制搜索算法,否则:否。
您必须使用一些更高级的数据结构(如排序列表或字典)。 我认为字典可以解决这个问题。 它非常快速且易于使用。
但想想: 你有多少物品 ? 你确定循环它们是性能问题吗? 如果你有<1000个对象,你绝对不必担心(除非你想要实时做某事)。
你可以使用Linq :
list.Any(o => o.InstanceName == "something")
但是你无法避免在列表中循环(在Linq案例中它是隐式完成的)。 如果您希望获得性能提升,请更改数据结构。 也许字典(InstanceName - > IAgStkObject
)是合适的吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.