zoukankan      html  css  js  c++  java
  • Linq LeftJoin 取不同和想同的对像

    今天同事问我两个List里怎么取不同的,我想到了SQL里用LEFT JOIN 然后在通过WHERE 里判断表里的某个字段为空就可以达到目的于是有了下面的LINQ

      [TestMethod]
            public void LinqLeftJoinTest()
            {
                List<DoHTEModelDTO> ali = new List<DoHTEModelDTO>();
                List<DoHTEModelDTO> bli = new List<DoHTEModelDTO>();
                DoHTEModelDTO a = new DoHTEModelDTO();
                a.hteId = 1;
                a.userId = 1;
                ali.Add(a);
    
                a = new DoHTEModelDTO();
                a.hteId = 2;
                a.userId = 2;
                ali.Add(a);
    
                a = new DoHTEModelDTO();
                a.hteId = 3;
                a.userId = 3;
                ali.Add(a);
    
    
                a = new DoHTEModelDTO();
                a.hteId = 1;
                a.userId = 1;
                bli.Add(a);
    
    
                a = new DoHTEModelDTO();
                a.hteId = 2;
                a.userId = 2;
                bli.Add(a);
    
    
                var ss = (from a1 in ali
                         join b in bli on a1.userId equals b.userId into temp
                         from tt in temp.DefaultIfEmpty()
                         where tt==null
                         select new { UserId = a1.userId }).ToList();
    
    
                var ss2 = (from a1 in ali
                          join b in bli on a1.userId equals b.userId into temp
                          from tt in temp.DefaultIfEmpty()
                          where tt!= null
                          select new { UserId = tt.userId }).ToList();
    
    
                Assert.IsNotNull(ss);
     
            }
           
    
         
        }
    }
    
        public class DoHTEModelDTO
        {
            public Int64 hteId { get; set; }
            public Int64 userId { get; set; }
            public bool submit { get; set; }
            
        }
    View Code

    我也不知道和别的方法比效率如何,只是记录一下而以。

  • 相关阅读:
    自然数幂和的若干种解法
    线性预处理逆元
    差分与有限微积分
    UVALive 6859——凸包&&周长
    UVALive 6858——分类讨论&&水题
    UVALive 6862——结论题&&水题
    ZOJ4019——贪心&&DP
    [LeetCode] Power of Two
    循环队列实现(C++) Ring Buffer
    正确使用stl vecotr erase函数
  • 原文地址:https://www.cnblogs.com/godgirl9111/p/7338020.html
Copyright © 2011-2022 走看看