Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查两个ISET是否具有相同实体的正确方法是什么_C#_.net_Performance_Nhibernate - Fatal编程技术网

C# 检查两个ISET是否具有相同实体的正确方法是什么

C# 检查两个ISET是否具有相同实体的正确方法是什么,c#,.net,performance,nhibernate,C#,.net,Performance,Nhibernate,我希望为下面的类实现Equals,其中Subs的顺序不相关 class Entity { ISet<SubEntity> Subs; } 这可能在比较数千个实体的内部循环中调用,因此性能可能是一个问题 根据我粗略的探索,我相信最好的选择是other.Subs.ExclusiveOrSubs.IsEmpty。这是否正确?这将是实现所需功能的正确方法。如果性能成为问题,当然在分析之后,您可以考虑添加一些启发式算法来确定两个集合是否具有相同的元素。Jon Skeet有一个关于优化L

我希望为下面的类实现Equals,其中Subs的顺序不相关

class Entity {
   ISet<SubEntity> Subs;
}
这可能在比较数千个实体的内部循环中调用,因此性能可能是一个问题


根据我粗略的探索,我相信最好的选择是other.Subs.ExclusiveOrSubs.IsEmpty。这是否正确?

这将是实现所需功能的正确方法。如果性能成为问题,当然在分析之后,您可以考虑添加一些启发式算法来确定两个集合是否具有相同的元素。Jon Skeet有一个关于优化LINQ到对象的博客系列,您可以看看。它研究可用于确定集合相等性的Intersect方法的操作