Есть Dictionary < int[], string > example_dictionary , при записи в него новой переменной мне надо проверить, существует ли уже данный ключ, но если делать так:
if (example_dictionary.ContainsKey(new int[] { ferst_cords[0], ferst_cords[1], second_cords[0], second_cords[1] }))
//something...
то одинаковые по 'наполнению' массивы все равно показываются как разные. Как сделать чтоб он работал по задумке? Добавление в словарь:
example_dictionary.Add(new int[] { ferst_cords[0], ferst_cords[1], second_cords[0], second_cords[1] }, "hi");
Класс Dictionary
может в конструкторе принимать параметр comparer - компаратор, используемый для сравнения объектов в этом словаре.
Создадим класс для сравнения массивов:
class ArrayComparer : IEqualityComparer<int[]>
{
public bool Equals(int[] x, int[] y)
{
return x.SequenceEqual(y);
}
public int GetHashCode(int[] obj)
{
return obj.Length;
}
}
Используем его:
var arrA = new int[] { 1, 2, 3 };
var arrB = new int[] { 1, 2, 4 };
var arrC = new int[] { 1, 2, 3 };
var dict = new Dictionary<int[], string>(new ArrayComparer());
dict.Add(arrA, "A");
dict.Add(arrB, "B");
//dict.Add(arrC, "C"); // Exception
Console.WriteLine(dict.Count);
if (dict.ContainsKey(arrC))
Console.WriteLine("yes");
else
Console.WriteLine("no");
Используемые пространства имён:
using System;
using System.Collections.Generic;
using System.Linq;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В общем, если посмотреть код, то видно, что там здоровенный switch, который выбирает нужную реализацию
Можно ли в C# отправить HTTP запрос через Tor? Пробовал использовать адрес прокси из сетевых настроек Tor Browser:
Есть база данных, которая содержит в себе данные в следующем виде(данные случайные):