首页 / .NET / 正文

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

2714 发布于: 2018-03-12 读完约需2分钟

问题描述

在.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#程序开发中如何使用LINQ将一个集合List<T>分割成N个子集合呢?

下一篇: [LINQ]ASP.NET MVC应用程序开发中将ModelState错误转换成JSON的方式有哪些呢?

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

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册