问题描述
在.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();
方案二
可以使用HashSet
的IsSubsetOf()
方法,如下:
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);
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册