LINQ获取两个List的交集

1.调用:

UserList = UserList.ToList().Intersect(userIDList, new MyUserComparer()).AsQueryable();

2.须要重写的方法:

public class MyUserComparer : IEqualityComparer<MyUser>
    {
        public bool Equals(MyUser x, MyUser y)
        {
            //throw new NotImplementedException();
            return x.UserID == y.UserID;
        }
        public int GetHashCode(MyUser obj)
        {
            return obj.ToString().GetHashCode();
        }
    }
时间: 2024-12-29 05:11:50

LINQ获取两个List的交集的相关文章

mysql获取两个集合的交集和差集

mysql中获取两个集合的交集,我的方法如下: 1.两个集合的结构要一致,对应的字段数,字段类型 2.将两个集合用 UNION ALL 关键字合并,这里的结果是有重复的所有集 3.将上面的所有集 GROUP BY id 4.最后 HAVING COUNT(id)=1,等于1的意思是只出现了一次,所以这个是差集,如果等于2,那么就是交集 这是实现的基本原理,具体如下: 1 -- 下面的sql有明显的问题,不过这个只是一个示意,从一个表中查询不需要用到交集和差集,条件可以合并在一起直接查询出来的.能

C# Linq获取两个List或数组的差集交集

List<int> list1 = new List<int>(); list1.Add(1); list1.Add(2); list1.Add(3); List<int> list2 = new List<int>(); list2.Add(3); list2.Add(4); list2.Add(5); //得到的结果是4,5 即减去了相同的元素. List<int> list3 = list2.Except(list1).ToList();

C# 获取两个DataTable 的交集、并集、差集

//IEnumerable<DataRow> QOld = vDTOld.AsEnumerable().ToList();                ////比较两个数据源的交集                //IEnumerable<DataRow> QJJ = vDTOld.AsEnumerable().Intersect(DTNew.AsEnumerable(), DataRowComparer.Default);                ////两个数据源的交集

Python获取两个文件的交集、并集、差集

题记:朋友在处理数据时,需要解决这方面的问题,所以利用她给的代码,自己重新梳理了下,并成功运行. 代码如下: # coding:utf-8 s1 = set(open(r'C:\\Users\\yangwj\\Desktop\\2\\1.txt').readlines()) s2 = set(open(r'C:\\Users\\yangwj\\Desktop\\2\\2.txt').readlines()) ff = open('C:\\Users\\yangwj\\Desktop\\2\\12

JAVA获取两个数据量较大的ArrayList的交集、差集以及并集

测试说明:获取firstArrayList和secondArrayList的交集.差集以及并集.实际测试中firstArrayList数据量190000,secondArrayList数据量170000.效率比较高.此处只列出少量数据.测试代码如下: import java.util.Set; import java.util.List; import java.util.HashSet; import java.util.TreeSet; import java.util.Iterator;

获取两个字符串全部公共的子串算法

应用场景: 获取两个字符串全部公共的子串. 思路: 1. 先获取两个子串的交集 2. 遍历交集子串,从最短子串到最长子串 public static List<String> getAllCommonSubStrings(String str1, String str2) { //TODO null check. String longString = str1; String shortString = str2; if(str1.length() < str2.length()){

获取两个字符串所有公共的子串算法

应用场景: 获取两个字符串所有公共的子串. 思路: 1. 先获取两个子串的交集 2. 遍历交集子串,从最短子串到最长子串 public static List<String> getAllCommonSubStrings(String str1, String str2) { //TODO null check. String longString = str1; String shortString = str2; if(str1.length() < str2.length()){

mysql高效获取两张表共同字段的交集数据

问题: 例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher A出版社也为很多人出版了书籍,B出版社也为很多人出版了书籍,有sql语句找出这两个出版社为那些人 共同出版书籍,用innerjoin太慢,有没有什么更好的办法? 解答一: 由于不知道你表的索引情况,至于用join还是in和exists不太好说,理论上讲,exists最快.in次之.join

Javascript 获取两个数组交集(重复)的项列表,支持List&lt;object&gt;

(function( window ){ var Utils = { //TODO 判断两个JSON是否相等 equals : function( param ,param2){ return JSON.stringify(param) === JSON.stringify(param2); }, //TODO 获取当前项在数组出现的个数 getCountByItem : function( objects,item){ var count = 0; for(var i = 0;i < obje