Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# Исходники .NET Core FX, где там найти исходный код Task? Всё обыскал, нету https://www.cyberforum.ru/ csharp-net/ thread1525664.html
.NET Core FX клонировал себе, всё посмотрел, не нашёл. При том, что в некоторых библиотеках эти самые таски используются, но при попытке перейти к ним решарпер их декомпилит из установленного...
Awesomium не переходит по ссылке C#
Не переходит по ссылке.. Вот пример: http://screenshot.su/show.php?img=c8788fed514a64536754d5563cd9a4c6.jpg Все уже облазил, не могу найти решение
C# Что значит сделать обёртку?
Есть задание. public interface IActionProcessor<TActionId> where TActionId : IEquatable<TActionId> { int MaxActionsCount { get; } void RequestAction(<TActionId> actionId); ...
C# Упаковка программы на дельфи в exe-файл на c# Добрый день! Есть утилита exe, написанная на дельфи. Утилита действует следующим образом: при запуске с параметром виде пути к текстовому файлу утилита обрабатывает данный файл. Мне нужно... https://www.cyberforum.ru/ csharp-net/ thread1525137.html
C# WebBrowser.InvokeMember: обновление страницы вместо перехода по ссылке формы https://www.cyberforum.ru/ csharp-net/ thread1524904.html
При вызове InvokeMember для input type="image" происходит обновление страницы вместо перехода по ссылке формы. В чём проблема? HtmlElementCollection ContButtonCol =...
Альтернатива Invoke при изменении GUI с другого потока C#
Всем добрый день. Давно в приложениях для обращения из второстепенных потоков к главному использую Invoke... Всё бы хорошо, но не мне вам рассказывать, насколько он медленный. В реальном времени...
C# Считать текст из Word посредством Microsoft.Office.Interop.Word
Необходимо считать форматированный текст из Word посредством Microsoft.Office.Interop.Word. По большей части нужно не сколько само форматирование текста, сколько получить имя картинки, находящейся в...
C# Ошибка сериализации/десериализации Доброго времени суток. Пишу программу для передачи информации о компьютере по сети. Имеются 2 приложения (сейчас обы Windows Form, в последствии сервер будет переделан в службу Windows для... https://www.cyberforum.ru/ csharp-net/ thread1523909.html
C# Система проверки информации и антиплагиат, возможно ли? https://www.cyberforum.ru/ csharp-net/ thread1523896.html
Здравствуйте ребята! Скажите пожалуйста, возможно ли в C# реализовать программу, которая будет проверять на правильность информации ссылаясь на википедию (например) и чтобы проверял на антиплагиат...
C# CefSharp: как найти доступ к содержимому загруженной веб-страницы? Кто работал с CefSharp ChromeWebBrowser, не могу разобраться как найти доступ к содержимому загруженной Веб страницы и наличие соответствующих интерфейсов, таких как HTMLelement? Для примера, в... https://www.cyberforum.ru/ csharp-net/ thread1523893.html
TheGreatCornholio
1235 / 715 / 283
Регистрация: 30.07.2015
Сообщений: 2,392
0

Реализация интерфейса IEqualityComparer для HashSet<Dictionary<string, string>>

07.09.2015, 00:57. Показов 2399. Ответов 4
Метки (Все метки)

Код выдает "2", что, логично, а хотелось бы, чтобы выдавал "1", так как содержание словарей одинаковое.
Подскажите, пожалуйста, желательно, максимально быструю и удобную реализацию интерфейса IEqualityComparer
для сравнения двух Dictionary<string,string>.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            HashSet<Dictionary<string, string>> hs = new HashSet<Dictionary<string, string>>(/*здесь нужен правильный  IEqualityComparer*/);
 
            Dictionary<string, string> dic = new Dictionary<string, string>();
            dic.Add("Номер", "111");
            
            Dictionary<string, string> dic2 = new Dictionary<string, string>();
            dic2.Add("Номер", "111");
 
            
 
            hs.Add(dic);
            hs.Add(dic2);
 
            MessageBox.Show(hs.Count.ToString());
И вообще, я на правильном пути?

Добавлено через 40 минут
Пока остановился на этом, вроде работает.
Покритикуйте, кому не жалко, код.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
        public class DictionaryStrStrComparer : IEqualityComparer<Dictionary<string,string>>
        {
           
            public bool Equals(Dictionary<string,string> D1, Dictionary<string,string> D2)
            {
              return GetHashCode(D1)==GetHashCode(D2);  
            }
 
          
            public int GetHashCode(Dictionary<string,string> D)
            {
                string AllFromDict = string.Join("", D.Keys.ToArray()) + string.Join("", D.Values.ToArray());             
                
                return AllFromDict.GetHashCode();
            }
        }
 
        HashSet<Dictionary<string, string>> hs = new HashSet<Dictionary<string, string>>(new DictionaryStrStrComparer());
 
        Dictionary<string, string> dic = new Dictionary<string, string>();
        dic.Add("Номер", "111");
            
        Dictionary<string, string> dic2 = new Dictionary<string, string>();
        dic2.Add("Номер", "111");
 
            
 
        hs.Add(dic);
        hs.Add(dic2);
 
        MessageBox.Show(hs.Count.ToString());


Вернуться к обсуждению:
Реализация интерфейса IEqualityComparer для HashSet<Dictionary<string, string>>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2015, 00:57
Готовые ответы и решения:

Dictionary<string, Dictionary<string, string>>
Ребята тут есть силачи ? Мне нужно решить эту проблему static void Main(string args)...

List<string, string, string> есть ли в C# что-то подобное?
Мне надо добавить в List не только имя файла, но и некоторые строки из этого файла. Т.е. например,...

Разность множеств для Dictionaty<string, string>
Здравствуйте! есть два словаря Dictionary&lt;string, string&gt; fixBlockNormalizeStrings и...

Как архивировать Dictionary<string, Dictionary<string, decimal[,]>>
Программа периодически создает Dictionary&lt;string, Dictionary&lt;string, decimal&gt;&gt; большого размера....

__________________
4
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.