我创建了一个程序,在其中我有INT阵列的队列:当在队列中使用Contains时,控制台返回False。为什么?
Queue<int[]> Test = new Queue<int[]>();
鉴于阵列,我想要查询的阵列是否在队列内。
我目前使用的命名空间是:System,System.Collections和System.Collections.Generic。
我想是这样的:
Queue<int[]> Test = new Queue<int[]>();
Test.Enqueue(new int[] { 20, 20 });
Console.WriteLine(Test.Contains(new int[] { 20, 20 })); // Is the array {20,20} inside the queue?
在这段代码中,在我看来,控制台会输出“真”,因为我加入了数组{20,20}到队列中,而现在我正在使用Contains方法进行检查。
但是当我运行代码 - 控制台输出false。
我有两个问题: 这是为什么发生?我该如何解决这个问题?
比较适用于引用,您需要创建相等比较器或循环遍历每个数组并调用SequenceEqual并传递该新数组以进行比较。 – terrybozzio 2014-10-05 17:16:34