C#中判断list集合中元素的包含关系
2018-01-06 14:37
821 查看
两个集合如下所示:
string[] bigArr = new string[] { "a", "b", "c" };
string[] smallArr = new string[] { "a", "b"};
//在大集合的基础上,根据小集合获取大集合的差集
var exceptArr = bigArr.Except(smallArr);
//判断是否是子集
if(exceptArr.Any())
{
Console.WriteLine("samllArr 是 bigArr的一个子集");
}
else
{
Console.WriteLine("samllArr 不是 bigArr的一个子集");
}
但是这种Except的方法,其实以上的方法是按照元素个数找的,只要smallAll中元素的个数小于bigAll中元素的个数exceptArr.Any()就返回true,例如string[]
bigArr = new string[] { "a", "b", "c" };
string[] smallArr = new string[] { "d"};
这种情况下,exceptArr.Any()也会返回true,但这并不是我们想要的结果。那如果想要判断smalAll是否包含在bigAll中,该怎么做呢?方法如下:
if(smallArr.All(t
=> bigArr.Any(b => b==t)))
{
Console.WriteLine("samllArr 是 bigArr的一个子集或一样");
}
else
{
Console.WriteLine("samllArr 不是 bigArr的一个子集或一样");
}
这样就可以正确判断smallAll是否包含在bigAll中。
除此之外,C#中集合运算,例如:
string[] bigArr = new string[] { "a", "b", "c" };
string[] smallArr = new string[] { "a", "b"};
//在大集合的基础上,根据小集合获取大集合的差集
var exceptArr = bigArr.Except(smallArr);
//判断是否是子集
if(exceptArr.Any())
{
Console.WriteLine("samllArr 是 bigArr的一个子集");
}
else
{
Console.WriteLine("samllArr 不是 bigArr的一个子集");
}
但是这种Except的方法,其实以上的方法是按照元素个数找的,只要smallAll中元素的个数小于bigAll中元素的个数exceptArr.Any()就返回true,例如string[]
bigArr = new string[] { "a", "b", "c" };
string[] smallArr = new string[] { "d"};
这种情况下,exceptArr.Any()也会返回true,但这并不是我们想要的结果。那如果想要判断smalAll是否包含在bigAll中,该怎么做呢?方法如下:
if(smallArr.All(t
=> bigArr.Any(b => b==t)))
{
Console.WriteLine("samllArr 是 bigArr的一个子集或一样");
}
else
{
Console.WriteLine("samllArr 不是 bigArr的一个子集或一样");
}
这样就可以正确判断smallAll是否包含在bigAll中。
除此之外,C#中集合运算,例如:
int[] oldArray = { 1, 2, 3, 4, 5 }; int[] newArray = { 2, 4, 5, 7, 8, 9 }; var jiaoJi = oldArray.Intersect(newArray).ToList();//2,4,5 var oldChaJi = oldArray.Except(newArray).ToList();//1,3 oldArray中有的,但是newArray中没有的 var newChaJi = newArray.Except(oldArray).ToList();//7,8,9 var bingJi = oldArray.Union(newArray).ToList();//1,2,3,4,5,7,8,9
相关文章推荐
- 判断集合是否包含元素list.contains(Object obj)
- Java判断一个值,或者对象是否存在list集合中和去掉list集合中重复的元素
- 判断两个集合包含关系
- python判断list中是否包含某个元素
- python中如何判断list中是否包含某个元素
- C# 找出泛型集合中的满足一定条件的元素 List<T>.Wher()
- //编写程序判断一个vector<int>容器所包含的元素是否与一个list<int>容器的完全相同
- javascript contains方法来判断元素包含关系
- java Android 判断两个集合是否包含不同元素
- c# Array或List有个很实用的ForEach方法,可以直接传入一个方法对集合中元素操作
- C# 找出泛型集合中的满足一定条件的元素 List.Wher()
- c#中List <int[]>集合添加和查找元素
- python 中如何判断list中是否包含某个元素
- jQuery 判断数组集合 是否包含相同元素.
- python 中如何判断list中是否包含某个元素
- c#中List <int[]>集合添加和查找元素
- 判断元素之间的包含关系contains和compareDocumentPosition详解
- c#中List <int[]>集合添加和查找元素
- C# 如何判断 List<T> 中包含某个属性的对象? 就是说,List<Person> 中如何判 断是否包含某一值
- C#向数组列表中添加数据,以及判断数组中是否包含某元素