0
   var testfilter = ( from p in test1  where !(from Q in test2 select new {Q.Website,Q.SSN,Q.Class})
                       Contains(new {p.Website,P.SSN,P.Class}) Select P).ToList();

    List<testResults> ResultList = (from R in testfilter  
                                    select new testResults  
                                    {  
                                       Website = R.Website,
                                        SSN = R.SSN,
                                        class = R.class, List1 = 'Yes'  
                                    }.ToList()  
                                   .Union (from Q in test2 
                                    select new testResults    
                                    {   
                                      Website = Q.Website,
                                      SSN = Q.SSN,class = Q.class, Status = Q.Status,
                                      List2 = 'Yes'   
                                   }.ToList(); 

以下のリストで次の条件を確認する必要があります

1) test1リストのみにレコードがほとんど存在しない

2) test2リストにのみレコードがほとんど存在しない

3) 両方のリストに存在するレコードはほとんどありません。両方のリストに存在する場合は、それらをフィルタリングして 1 つのレコードとして表示します。

上記のクエリは 50k 未満のレコードには適していますが、グリッドに表示するレコードが 200k を超えています。Exceptまたは他の方法を使用してクエリを改善するには?

4

1 に答える 1

0

これが問題を解決するための最も改善された方法であるかどうかはわかりませんが、そのような明確なものを使用してみてください。

 List<testResults> distinctResultList = ResultList.Distinct().ToList();
于 2012-06-21T04:45:00.333 に答える