[C #, .NET] [VB.NET] практика IEqualityComparer не чувствительно к регистру

[C #, .NET] [VB.NET] практика IEqualityComparer не чувствительно к регистру


Практика в IEqualityComparer , сравнение без учета регистра

       // практика
        класс InComparer общественности: IEqualityComparer
        {
            CaseInsensitiveComparer myComparer = новый CaseInsensitiveComparer ();
            общественного ИНТ GetHashCode (объект OBJ)
            {
                вернуться obj.ToString () ToLowerInvariant () GetHashCode ()..;
            }
            общественности новый BOOL Equals (объект х, объект у)
            {
                если (myComparer.Compare (х, у) == 0)
                {
                    возвращает истину;
                }
                еще
                {
                    вернуться ложным;
                }
            }
        }


Во-первых, потому что ни одного случая, так как идентичные с первым, исключение программы происходит во время выполнения.

// ссылка класса
Hashtable MyData = новый Hashtable (новый InComparer ());
myData.Add ( "Первый", "первый");
myData.Add ( "Senond", "второй");
myData.Add ( "Третий", "третий");
myData.Add ( "Четвертый", "четвёртый");
myData.Add ( "Пятый", "пятый");
myData.Add ( "первый", "первый");
Еогеасп (DictionaryEntry myEntry в MyData)
{
       Console.WriteLine ( "{0} = {1}", myEntry.Key, myEntry.Value);
}


Конечно, вы можете также использовать CollectionsUtil класс не чувствителен к регистру, эта программа выглядит намного короче.

Hashtable myColl = CollectionsUtil.CreateCaseInsensitiveHashtable ();
myColl.Add ( "А", "1234");
myColl.Add ( "а", "1234");


Если какой-либо ошибки, пожалуйста, сообщите новичку размещения его нести

2010 ~ 2017 C # в четвертом квартале

Оригинал: Большая колонка  [C # .NET] [VB.NET] практика IEqualityComparer не чувствительна к регистру


рекомендация

отwww.cnblogs.com/chinatrump/p/11513141.html