📅  最后修改于: 2023-12-03 14:39:45.992000             🧑  作者: Mango
在 C# 中,可以使用 Enumerable.SequenceEqual()
方法来检查两个列表是否具有相同的值。
使用 Enumerable.SequenceEqual()
方法:
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 1, 2, 3, 4 };
List<int> list3 = new List<int> { 1, 2, 3, 5 };
List<int> list4 = new List<int> { 1, 2, 3 };
bool result1 = Enumerable.SequenceEqual(list1, list2); // true
bool result2 = Enumerable.SequenceEqual(list1, list3); // false
bool result3 = Enumerable.SequenceEqual(list1, list4); // false
Console.WriteLine(result1);
Console.WriteLine(result2);
Console.WriteLine(result3);
}
}
输出:
True
False
False
自定义比较器:
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<MyClass> list1 = new List<MyClass>
{
new MyClass { Value = 1 },
new MyClass { Value = 2 },
new MyClass { Value = 3 }
};
List<MyClass> list2 = new List<MyClass>
{
new MyClass { Value = 1 },
new MyClass { Value = 2 },
new MyClass { Value = 3 }
};
List<MyClass> list3 = new List<MyClass>
{
new MyClass { Value = 1 },
new MyClass { Value = 2 },
new MyClass { Value = 4 }
};
bool result1 = list1.SequenceEqual(list2, new MyClassEqualityComparer()); // true
bool result2 = list1.SequenceEqual(list3, new MyClassEqualityComparer()); // false
Console.WriteLine(result1);
Console.WriteLine(result2);
}
}
class MyClass
{
public int Value { get; set; }
}
class MyClassEqualityComparer : IEqualityComparer<MyClass>
{
public bool Equals(MyClass x, MyClass y)
{
return x.Value == y.Value;
}
public int GetHashCode(MyClass obj)
{
return obj.Value.GetHashCode();
}
}
输出:
True
False
以上就是在 C# 中检查两个列表是否具有相同的值的方法。