枚举匿名集合时出现C#outofmemory异常

枚举匿名集合时出现C#outofmemory异常,c#,linq,C#,Linq,我尝试使用linq查询根据匹配字段将记录配对在一起 显然,这意味着在创建集合时,有两个以上的记录在同一字段上匹配的重复记录 我随后将处理这一重复问题 我遇到的问题是,当我枚举匿名集合(类型为new{record1,record2})时,我遇到了内存不足异常 在不命名字段的情况下,记录的类型如下: public class record { public CustomEnum myType {get; set;} public int myPrimaryKey {get; set;

我尝试使用linq查询根据匹配字段将记录配对在一起

显然,这意味着在创建集合时,有两个以上的记录在同一字段上匹配的重复记录

我随后将处理这一重复问题

我遇到的问题是,当我枚举匿名集合(类型为new{record1,record2})时,我遇到了内存不足异常

在不命名字段的情况下,记录的类型如下:

public class record {
    public CustomEnum myType {get; set;}
    public int myPrimaryKey {get; set;}
    public DateTime? myDate {get; set;}
    public String myString1 {get; set;}
    public String myString2 {get; set;}
    public String myString3 {get; set;}
    public decimal? myDecimal {get; set;}
};
这个类没有方法


对于如何减少此集合的内存使用有何建议?如果我使用C++,我会使用引用。在C#中,它似乎每次以新的匹配对出现时都会复制整个记录对象,导致大量内存浪费

我建议使用字典,因为键是uniquePost代码,会抛出OOMEException:如何“配对”记录?在C#中,它似乎会复制整个记录:它不会。类始终是引用。也许您应该在加入之前进行匹配,因为不匹配的加入可能很大,这取决于您的数据。@标记,请显示您的查询