C#对List中的数据进行取交集、并集、差集和去重操作的方法
2016-08-02 15:25
531 查看
第一步:定义两个list并进行初始化
public List<string> GetList1()
{
List<string> list1 = new List<string>();
list1.Add("1");
list1.Add("2");
list1.Add("3");
list1.Add("4");
list1.Add("4");
return list1;
}
public List<string> GetList2()
{
List<string> list2 = new List<string>();
list2.Add("3");
list2.Add("4");
list2.Add("5");
list2.Add("6");
return list2;
}
第二步:定义相关方法
#region 两个List取交集
public List<string> GetIntersection()
{
ListData ld = new ListData();
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> result = new List<string>();
list1 = ld.GetList1();
list2 = ld.GetList2();
//注意结果一定要转换为List类型
result = list1.Intersect(list2).ToList();
return result;
}
#endregion
#region 判断是否有交集
public bool IsHasIntersect()
{
bool bl=false;
ListData ld = new ListData();
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> result = new List<string>();
list1 = ld.GetList1();
list2 = ld.GetList2();
//注意结果一定要转换为List类型
result = list1.Intersect(list2).ToList();
if (result.Count > 0)
{
bl = true;
}
return bl;
}
#endregion
#region 两个List取并集
public List<string> GetUnion()
{
ListData ld = new ListData();
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> result = new List<string>();
list1 = ld.GetList1();
list2 = ld.GetList2();
//注意结果一定要转换为List类型
result = list1.Union(list2).ToList();
return result;
}
#endregion
#region 两个List取差集
public List<string> GetSubtraction()
{
ListData ld = new ListData();
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> result = new List<string>();
list1 = ld.GetList1();
list2 = ld.GetList2();
result = list1.Except(list2).ToList();
return result;
}
#endregion
#region 去重
public List<string> GetDistinct()
{
ListData ld = new ListData();
List<string> list1 = new List<string>();
List<string> result = new List<string>();
list1 = ld.GetList1();
result = list1.Distinct().ToList();
return result;
}
#endregion
#region 判断一个list是否完整包含另一个list中的元素
public bool IsContain()
{
bool bl = false;
ListData ld = new ListData();
List<string> list1 = new List<string>();
list1 = ld.GetList1();
List<string> list2 = new List<string>();
list2 = ld.GetList2();
bl = list1.All(b => list2.Any(a => a.Equals(b)));
return bl;
}
#endregion
第三步:在主程序中进行实现,结果如下
是否包含:不包含
交集:{3,4}
并集:{1,2,3,4,5,6}
差集:{1,2}
去重:{1,2,3,4}
public List<string> GetList1()
{
List<string> list1 = new List<string>();
list1.Add("1");
list1.Add("2");
list1.Add("3");
list1.Add("4");
list1.Add("4");
return list1;
}
public List<string> GetList2()
{
List<string> list2 = new List<string>();
list2.Add("3");
list2.Add("4");
list2.Add("5");
list2.Add("6");
return list2;
}
第二步:定义相关方法
#region 两个List取交集
public List<string> GetIntersection()
{
ListData ld = new ListData();
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> result = new List<string>();
list1 = ld.GetList1();
list2 = ld.GetList2();
//注意结果一定要转换为List类型
result = list1.Intersect(list2).ToList();
return result;
}
#endregion
#region 判断是否有交集
public bool IsHasIntersect()
{
bool bl=false;
ListData ld = new ListData();
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> result = new List<string>();
list1 = ld.GetList1();
list2 = ld.GetList2();
//注意结果一定要转换为List类型
result = list1.Intersect(list2).ToList();
if (result.Count > 0)
{
bl = true;
}
return bl;
}
#endregion
#region 两个List取并集
public List<string> GetUnion()
{
ListData ld = new ListData();
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> result = new List<string>();
list1 = ld.GetList1();
list2 = ld.GetList2();
//注意结果一定要转换为List类型
result = list1.Union(list2).ToList();
return result;
}
#endregion
#region 两个List取差集
public List<string> GetSubtraction()
{
ListData ld = new ListData();
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> result = new List<string>();
list1 = ld.GetList1();
list2 = ld.GetList2();
result = list1.Except(list2).ToList();
return result;
}
#endregion
#region 去重
public List<string> GetDistinct()
{
ListData ld = new ListData();
List<string> list1 = new List<string>();
List<string> result = new List<string>();
list1 = ld.GetList1();
result = list1.Distinct().ToList();
return result;
}
#endregion
#region 判断一个list是否完整包含另一个list中的元素
public bool IsContain()
{
bool bl = false;
ListData ld = new ListData();
List<string> list1 = new List<string>();
list1 = ld.GetList1();
List<string> list2 = new List<string>();
list2 = ld.GetList2();
bl = list1.All(b => list2.Any(a => a.Equals(b)));
return bl;
}
#endregion
第三步:在主程序中进行实现,结果如下
是否包含:不包含
交集:{3,4}
并集:{1,2,3,4,5,6}
差集:{1,2}
去重:{1,2,3,4}
相关文章推荐
- java 对两个list进行“交集,并集,差集,去重复并集”的操作
- python两个 list 获取交集,并集,差集的方法.
- C# 对List<T>取交集、差集以及并集
- pandas进行数据的交集与并集方式的数据合并方法
- python两个 list 获取交集,并集,差集的方法
- python两个 list 获取交集,并集,差集的方法.
- IOS开发中集合操作 处理数据的 交集 并集 差集
- Python求两个list的差集、交集与并集的方法
- Python求两个list的差集、交集与并集的方法(转)
- Python求两个list的差集、交集与并集的方法
- Python求两个list的差集、交集与并集的方法
- Python实现两个list求交集,并集,差集的方法示例
- ORACLE 数据查询集合即:查询结果的集合操作 并集 交集 差集
- python两个 list 获取交集,并集,差集的方法
- List的 并集、交集、差集操作
- python两个 list 获取交集,并集,差集的方法
- Python求两个list的差集、交集与并集的方法
- C# List<T>的并集、交集、差集
- python两个 list 获取交集,并集,差集的方法
- python两个 list 获取交集,并集,差集的方法