2个Ilist怎么去除里面的重复数据,是否重复按他们中间都有的列A来判断
2个Ilist怎么去除里面的重复数据,是否重复按他们中间都有的列A来判断 --------------------编程问答-------------------- 用第三个list作为中转,逐个对比 --------------------编程问答-------------------- 可不可以详细点啊?不太会哦 --------------------编程问答-------------------- 问题没有听懂,是Ilist A中数据,和Ilist B中数据对比是否有相同项?是吗--------------------编程问答--------------------
是 --------------------编程问答--------------------
//using System;
//using System.Collections;
//using System.Collections.Generic;
//using System.Linq;
static void Main(string[] args)
{
IList A = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
IList B = new List<int> { 2, 5, 7, 19 };
IList C = new List<int>();
B.Cast<int>().Where(b => A.Contains(b)).ToList().ForEach(c => C.Add(c));
C.Cast<int>().ToList<int>().ForEach(c => Console.WriteLine(c + " "));
输出:
2 5 7 --------------------编程问答-------------------- 掉了个} --------------------编程问答-------------------- 我是要去除重复的哦 --------------------编程问答-------------------- list里面肯定有类型的吧,list2根据主键去list1里面遍历,if contains的时候就抛出,else 添加到list1里面。完事就好了呀 --------------------编程问答--------------------
B.Cast<int>().Where(b => !A.Contains(b)).ToList().ForEach(c => C.Add(c)); 不知道为什么不行,我要去除重复的 --------------------编程问答-------------------- 原理上与数据表的去重是一样的,你可以先获取Ilist A列的数据值,Ilist B 的数据每一对比,如果有相等,用个变量存储起来,剩下的就是删除了。 --------------------编程问答--------------------
--------------------编程问答-------------------- linq的集合运算有
int[] A = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int[] B = { 2, 5, 7, 19 };
Console.WriteLine(string.Join(",", A.Union(B).Distinct()));
set1.Intersect(set2);//交集
set1.Except(set2);//差集A-B
set1.Union(set2);//并集去重复
set1.Concat(set2);//类似并集不去重复 --------------------编程问答-------------------- 为什么不直接用去重查询呢? --------------------编程问答-------------------- 去重复的就更简单了
IList A = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
IList B = new List<int> { 2, 5, 7, 19 };
A.Cast<int>().ToList().ForEach(a => { if (B.Contains(a)) A.Remove(a); });
A.Cast<int>().ToList<int>().ForEach(a => Console.Write(a + " "));
补充:.NET技术 , C#