Описание тега iequalitycomparer

IEqualityComparer - это интерфейс платформы.NET, который позволяет реализовать настраиваемое сравнение на равенство для коллекций. То есть вы можете создать собственное определение равенства и указать, что это определение будет использоваться с типом коллекции, который принимает интерфейс IEqualityComparer. Поддерживается в.NET версий 3.5, 3.0, 2.0 (Источник: MSDN)
1 ответ

Эффективный способ сгруппировать все равные объекты, определенные IEqualityComparer

У меня есть большой список определенных объектов, которые имеют тип Order, Кроме того, я определил IEqualityComparer<Order> и моя цель состоит в том, чтобы эффективно создать список списков (или групп), где каждый подсписок содержит объекты, к…
19 июн '15 в 12:28
1 ответ

Когда использовать IEqualityComparer в приложении, ориентированном на.NET 4.0

Есть ли какая-то выгода для меня, чтобы реализовать слабо типизированный IEqualityComparer в приложениях.NET 4.0 в дополнение к IEqualityComparer<T> интерфейс? Другой угол я всегда могу реализовать IEqualityComparer<System.Object> состав…
16 янв '11 в 04:43
1 ответ

LINQ Distinct не работает

Я пытаюсь выбрать отдельные экземпляры из моего класса, но он не работает, даже после реализации IEqualityComparer (как описано здесь: https://msdn.microsoft.com/en-us/library/bb338049.aspx) И IEquatable Может ли кто-нибудь помочь? Public Class Test…
2 ответа

Странное поведение на IEqualityComparer

Я пытаюсь реализовать IEqualityComparer для моего объекта, который в основном определяет, является ли объект старше другого. Следующий простой пример синтезирует то, что я пытаюсь выполнить: class Program { static void Main(string[] args) { var auth…
1 ответ

Реализация компаратора для коллекции коллекций

У меня есть свой класс MyClass<MyTriple<FirstG, SecondG, ThirdG>> : ICollection<MyTriple<FirstG, SecondG, ThirdG>> У меня есть данные, хранящиеся в: Dictionary<FirstG, Dictionary<SecondG, ThirdG>> Data и я хочу ре…
09 апр '13 в 17:37
1 ответ

Как реализовать IEqualityComparer<T> в VB.NET?

У меня есть следующая функция, которая просматривает каталог и проверяет наличие указанной папки и файла: Private Function VerifyPath(ByVal root As String, ByVal folder As String, _ ByVal file As String) As Boolean Dim folders As New List(Of String)…
08 апр '09 в 13:26
2 ответа

Конструктор HashSet с пользовательским IEqualityCompare определяется лямбда-выражением?

В настоящее время HashSet&lt;T&gt; Конструктор, который позволяет вам самостоятельно определить равенство HashSet&lt;T&gt;(IEqualityComparer&lt;T&gt; comparer) конструктор. Я хотел бы определить этот EqualityComparer как лямбда. Я нашел это сообщени…
19 май '09 в 07:44
1 ответ

Разница между двумя перегрузками Enumerable.Except?

Я пытаюсь понять разницу между двумя перегрузками Enumerable.Except метод т.е. Кроме (IEnumerable, IEnumerable) За исключением (IEnumerable, IEnumerable, IEqualityComparer) Очевидно, что первое отличие состоит в том, что первая перегрузка использует…
11 дек '14 в 11:42
5 ответов

EqualityComparer<T>. По умолчанию против T.Equals

Предположим, у меня есть общий MyClass&lt;T&gt; что нужно сравнить два объекта типа &lt;T&gt;, Обычно я бы сделал что-то вроде... void DoSomething(T o1, T o2) { if(o1.Equals(o2)) { ... } } Теперь предположим, что мой MyClass&lt;T&gt; имеет конструкт…
02 май '11 в 13:19
2 ответа

Как получить значение из универсального словаря, используя пользовательский компаратор для ключа?

У меня есть общий словарь объектов и хочу использовать пользовательский компаратор для обновления значения в словаре. myObjects содержит словарь объектов, а значение - это количество раз, которое объект существует. Обратите внимание, что значение мо…
05 дек '11 в 17:23
1 ответ

IEqualityComparer для обнуляемой структуры

Я хочу написать сравнитель равенства для структур Nullable. Допустим, DateTime?, Итак, я придумаю этот код: public class NullableEntityComparer&lt;TEntity, TType&gt; : IEqualityComparer&lt;TEntity&gt; where TType : struct where TEntity : Nullable&lt…
29 июл '15 в 10:10
4 ответа

C# / LINQ самый быстрый способ сравнения двух списков и присвоения значения

Я сделал код, который в основном сравнивает два списка в C#. Первый список содержит такие свойства: ItemID Всего просмотров В первом списке отсутствуют значения для TotalViews, поэтому я назначаю их из второго списка, в котором есть эти реквизиты: I…
20 фев '17 в 17:26
3 ответа

linq Кроме и пользовательских IEqualityComparer

Я пытаюсь реализовать пользовательский компаратор в двух списках строк и использую метод.Except() linq, чтобы получить те, которые не входят в один из списков. Причина, по которой я создаю собственный компаратор, заключается в том, что мне нужно вып…
23 мар '10 в 15:11
1 ответ

Преобразовать EqualityComparer<Child <T >> в EqualityComparer<Parent>

У меня есть такая иерархия: public interface INode { //... } public interface INode&lt;T&gt; : INode { //... } public class Node : INode { //... } public class Node&lt;T&gt; : Node, INode&lt;T&gt; { //... } Теперь я хочу сыграть так: EqualityCompare…
1 ответ

GroupJoin, перегруженный IEqualityComparer, сравнивает только объекты во внутренней коллекции

Я столкнулся с некоторым странным поведением при реализации группового соединения с клиентом IEqualityComparer. Следующий код демонстрирует поведение, которое является проблемой для меня List&lt;String&gt; inner = new List&lt;string&gt;() { "i1", "i…
04 ноя '15 в 12:32
2 ответа

LINQ без реализации IEqualityComparer

У меня 2 коллекции с разными классами. MyClass1 - имя, возраст и т. Д. MyClass2 - имя, возраст и т. Д. Я хочу найти кроме этой коллекции. Что-то вроде list1.Exept(list2, (l1,l2) =&gt; l1.Name==l2.Nick); Но я не могу написать этот код, и мне нужно ре…
24 фев '11 в 11:56
2 ответа

Почему перегрузка Distinct() не принимает делегата сравнения (или аналогичного)?

При использовании оператора запроса Distinct() типы в запрашиваемой последовательности должны либо обеспечивать подходящие перегрузки GetHashCode() и Equals(), либо вы должны передать реализацию IEqualityComparer. Мой вопрос: почему нет перегрузки D…
3 ответа

Когда я должен использовать IEqualityComparer? C#

У меня есть список пользовательских объектов, где я пытаюсь удалить дубликаты записей. Я вижу так много онлайн статей, которые указывают на IEqualityComparer(Я никогда не использовал это раньше). Вопрос в том, когда мне его использовать? Я могу дост…
23 окт '18 в 19:01
1 ответ

Удалить дубликаты из DataTable и пользовательского IEqualityComparer<DataRow>

Как мне реализовать IEqualityComparer&lt;DataRow&gt; удалить дубликаты строк из DataTable со следующей структурой: ID primary key, col_1, col_2, col_3, col_4 Компаратор по умолчанию не работает, потому что каждая строка имеет свой уникальный первичн…
21 окт '09 в 08:32
1 ответ

Проверка экземпляра параметра ограниченного типа не для класса на null в универсальном методе

В настоящее время у меня есть общий метод, в котором я хочу выполнить некоторую проверку параметров, прежде чем работать с ними. В частности, если экземпляр параметра типа T это ссылочный тип, я хочу проверить, если это null и бросить ArgumentNullEx…
12 сен '12 в 21:30