Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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# 比较c语言中的两个类列表#_C# - Fatal编程技术网

C# 比较c语言中的两个类列表#

C# 比较c语言中的两个类列表#,c#,C#,我有这门课: .NET Framework 3.5 Class my_class { string name; int val_1; int val_2; . . . int val_n; } 我有以下清单: List<my_class> list1; List<my_class> list2; List<my_class> result1; List<my_class> result2; List<my_class>

我有这门课:
.NET Framework 3.5

Class my_class {
 string name;
 int val_1;
 int val_2;
 .
 . 
 .
 int val_n;
}
我有以下清单:

List<my_class> list1;
List<my_class> list2;
List<my_class> result1;
List<my_class> result2;
List<my_class> resultEdit;
结果应该是:

result1 = {{"B",1,2,3,4}};
result2 = {{"D",1,2,3,4}};
resultEdit1 = {{"C",1,2,3,4}};
我知道有很多方法可以做到这一点,但由于每个列表中有大量的项目(每个列表中有超过500K个项目),处理时间并不好

那么,有什么好的、快速的方法来实现这一点吗


注意:处理时间对我来说非常重要,内存也很重要。好吧,描述中缺少很多东西,但是在比较之前,我会对数据进行一些预处理:

  • 为每个元素添加排序功能。因此,我将{“A”,1,2,3,4}转移到的对象,其中字符串是名称(“A”),int是数字1234(取决于n的值。如果太长,就使用字符串)
  • 现在,您可以在适当的数据结构中对元素进行排序(将在前面介绍)。我会使用字典,每个键都有一个排序列表

  • 现在更容易找到不同的结果。例如,因为它是唯一的,所以哈希集是明显的替代方案,它为集合操作提供摊销O(1)访问和O(n)。如果保持顺序很重要,那么您还需要在其中保留一个列表。如果使用comparer的标准
    Enumerable.Exception
    不适用于您(我假设这种情况,正如您所说,您无法通过定期实施达到所需目标)那么你的问题可能太宽泛了,不适合SO,可能是关于其他更具理论性的SE站点的主题。那么到目前为止你尝试了什么?列表1和列表2中的数据是如何填充的?也许有一种方法可以在将数据分成两个列表之前对其进行分类。@Hazem如果我们不知道您做了什么,那么我们如何建议去哪里?CPU很便宜,你有限制吗?您是否尝试过,但出现了性能问题?如果你必须实时相交百万个对象,那么我还建议你更好地组织它们,而不是…列表。似乎OP已经删除了名称是每个列表唯一属性的指示。
    result1 = {{"B",1,2,3,4}};
    result2 = {{"D",1,2,3,4}};
    resultEdit1 = {{"C",1,2,3,4}};