给定以下字符串列表:
string[] Itens = new string[] { "hi", " hi ", "HI", "hí", " Hî", "hi hi", " hí hí ", "olá", "OLÁ", " olá ", "", "ola", "hola", " holà ", "aaaa", "áâàa", " aâàa ", "áaàa", "áâaa ", "aaaa ", "áâaa", "áâaa", };
Run Code Online (Sandbox Code Playgroud)
Distinct操作的结果应为:
hi, hi hi, olá, , hola, aaaa
Run Code Online (Sandbox Code Playgroud)
IEnumerable可用的C#的Distinct操作接受IEqualityComparer作为参数,因此我们可以个性化比较。
以下实现可以完成工作
class LengthHash : IEqualityComparer<string>
{
public bool Equals(string x, string y)
{
if (x == null || y == null) return x == y;
var …
Run Code Online (Sandbox Code Playgroud)