CSharp · Console
using System;
using System.Collections.Generic;
using System.Linq;
public class MyComparer : IEqualityComparer<List<int>> {
public bool Equals(List<int> A, List<int> B) {
if (ReferenceEquals(A, B))
return true;
if (A is null || B is null)
return false;
return A.SequenceEqual(B);
}
public int GetHashCode(List<int> list) => list is null
? -1
: list.Count;
}
public class Program {
public static void Main() {
var hs = new HashSet<List<int>>(new MyComparer());
List<int> list = new List<int>() { 1, 2, 3 };
hs.Add(new List<int>(){1, 2, 3});
hs.Add(list);
Console.WriteLine($"{hs.Count}");
}
}