在`SetEquals`中将为元素执行哪个等式检查?

Joh*_*ood 3 c# equals

我们有SetEquals方法来检查不同的集合类型是否相等.但是会对元素执行什么样的等式测试呢?会EqualsReferenceEquals将被使用?

API中它只是声明:

确定当前集合和指定集合是否包含相同的元素

Jon*_*eet 7

它是"集合用来考虑元素相等的那个",即用于Add和的相同的一个Contains.例如:

var set = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
{
    "abc", "def"
};
var list = new List<string> { "ABC", "DEF" };
Console.WriteLine(set.SetEquals(list)); // True
Run Code Online (Sandbox Code Playgroud)