如何检查List <int []>是否包含与其他int []存储相同值的int []元素? - c#

假设我有一个整数数组和一个整数数组的列表:

List<int[]> MyListOfIntArrays = new List<int[]>
                                 {
                                      new int[1] {0},
                                      new int[2] {0,1},
                                      new int[2] {1,0}
                                 };
int[] MyArray = new int[]{1, 0};

我想找出如何检查MyListOfIntArrays中是否为与MyArray存储相同值的元素。
在这种情况下,答案应该是:“是”(MyListOfIntArrays的第三个元素存储与MyArray相同的值)。

我的尝试:

if (MyListOfIntArrays.Contains(MyArray) == true)
    Console.WriteLine("Yes");
if (MyListOfIntArrays.Contains(MyArray) == false)
    Console.WriteLine("No");

始终返回否。
我是C#的新手,我的猜测是方法“包含”会检查此处的引用,而不是值。有人可以帮我解决这个问题吗?

参考方案

您可以使用FindIndexSequenceEqual

当谓词返回true时,FindIndex将返回给定数组(MyListOfIntArrays)的索引。如果找不到任何内容,它将返回-1。

SequenceEqual将逐个元素检查数组的相等性,而不是通常检查Contains的引用(因为它使用默认比较器,并且数组由ref检查。另一种方法是使用Servy显示的自定义比较器)。

if (MyListOfIntArrays.FindIndex(x => x.SequenceEqual(MyArray)) != -1) // if != -1 means we found array!
    Console.WriteLine("Yes");
else
    Console.WriteLine("No");

如果您不需要索引,则可能要使其简单。 Any只会给出一个布尔值,正如Asad Saeeduddin所说:

if(MyListOfIntArrays.Any(MyArray.SequenceEqual))
    Console.WriteLine("Yes");
else
    Console.WriteLine("No");

如何使用SWIG将numpy数组转换为vector <int>&(reference) - python

我的目标:在python中创建3个numpy数组(其中2个将使用特定的值初始化),然后将所有三个通过swig发送到c ++函数中作为矢量引用(这是为了避免复制数据和失去效率)。一旦进入c ++函数,就将两个数组相加,并将它们的总和放在第三个数组中。vec_ref.h#include <vector> #include <iostream&g…

合并List <T>和List <Optional <T >> - java

鉴于: List<Integer> integers = new ArrayList<>(Arrays.asList( 10, 12 )); List<Optional<Integer>> optionalIntegers = Arrays.asList( Optional.of(5), Optional.em…

无法从ArrayList <String>转换为List <Comparable> - java

当我写下面的代码时,编译器说 无法从ArrayList<String>转换为List<Comparable>private List<Comparable> get(){ return new ArrayList<String>(); } 但是当我用通配符编写返回类型时,代码会编译。private List&l…

OpenShift构建错误:无法在多模块Maven Spring启动项目的父模块中导入子模块类 - java

我有一个使用spring的多模块Maven项目。通用模块类用作业务模块项目中的直接导入。我可以在本地PC上编译并成功运行它们。当我在OpenShift中部署相同的模块时,出现错误,无法在业务模块中导入通用模块类。项目结构可以总结如下:项目根 通用模块 src pom.xml 业务模块 src pom.xml pom.xml父POM:<?xml vers…

List <Dog>是List <Animal>的子类吗?为什么Java泛型不是隐式多态的? - java

我对Java泛型如何处理继承/多态感到困惑。假设以下层次结构-动物(父母)狗-猫(儿童)因此,假设我有一个方法doSomething(List<Animal> animals)。根据继承和多态性的所有规则,我假设List<Dog>是List<Animal>,而List<Cat>是List<Animal&g…