У меня возникли трудности, связанные со всеми rules for the GetHashCode method in MSDN для класса, единственным свойством которого является строка соединения.Реализация GetHashCode на основе строки подключения
Я попытался просто возвращая хэш строки, но возвращает другое значение для строк Provider=Microsoft.ACE.OLEDB.12.0; Data Source=path
, Provider=Microsoft.ACE.OLEDB.12.0; Data Source=path;
и Data Source=path;Provider=Microsoft.ACE.OLEDB.12.0;
, все из которых являются эквивалентными.
Затем я попытался с помощью метода OleDbConnectionStringBuilder.GetHashCode
, но это даже не возвращает то же Hashcode в этом случае:
test1.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" +
PathToExcelFile + ";Extended Properties='Excel 12.0 Macro;HDR=YES;IMEX=1';";
test2.ConnectionString = test1.ConnectionString;
Console.WriteLine(test1.GetHashCode());
Console.WriteLine(test2.GetHashCode());
Моя цель состоит в том, чтобы использовать свой класс как ключ к словарю, так GetHashCode является важным. Как мне его реализовать?
Вы должны написать синтаксический анализатор. Никакой помощи вообще из рамки вне регулярного выражения. –