[LINQ].NET/C#程序开发判断一个集合是另外一个集合的子集合的方法有哪些?

.NET 作者: Rector 516阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

在.NET/C#的程序开发中,当前有如下的两个集合:

List<double> t1 = new List<double> { 1, 3, 5 };
List<double> t2 = new List<double> { 1, 5 };

有哪些方法判断一个集合t2是另外一个集合t1的子集,如果使用LINQ又应该如何实现呢?

方案一

bool isSubset = !t2.Except(t1).Any();

方案二

可以使用HashSetIsSubsetOf()方法,如下:

HashSet<double> t1 = new HashSet<double>{1,3,5};
HashSet<double> t2 = new HashSet<double>{1,5};

bool isSubset = t2.IsSubsetOf(t1);

方案三

创建一个静态扩展方法:

public static bool IsSubsetOf<T>(this IEnumerable<T> a, IEnumerable<T> b)
{
    return !a.Except(b).Any();
}

调用方法:

bool isSubset = t2.IsSubsetOf(t1);

阅读了该文章的人还浏览了...

本文永久链接码友网 » [LINQ].NET/C#程序开发判断一个集合是另外一个集合的子集合的方法有哪些?

发布于: 2018-03-12 09:14:36
分享扩散: