Игнорировать регистр для свойств объекта при сравнении коллекций

У меня есть две коллекции, которые содержат объекты моего пользовательского типа. Я сравниваю эти коллекции с помощью библиотеки FluentAssertions:

Collection1.Should().BeEquivalentTo(Collection2);

Допустим, объекты в коллекциях имеют строковое свойство с именем Title, но иногда их регистр различается (заглавный или верхний регистр). Из-за этого сравнение не получается.

Есть ли способ игнорировать регистр для некоторых (или всех) строковых свойств объекта при сравнении коллекций?


person YMM    schedule 04.05.2017    source источник


Ответы (2)


Нет простите. Но вы можете создать свою собственную реализацию IMemberSelectionRule

person Dennis Doomen    schedule 05.05.2017
comment
Спасибо за предложение, но я нашел способ сделать эти строковые свойства ToUpper() при инициализации коллекции, так что регистр не имеет значения. - person YMM; 07.05.2017
comment
Подождите, вы имели в виду, что регистр фактического свойства values имел другой регистр. Я думал, вы имели в виду названия свойств. - person Dennis Doomen; 08.05.2017
comment
Нет, случай значений свойств. Имена всегда «название». - person YMM; 09.05.2017

да. Просто сделайте так, чтобы ваш пользовательский тип реализовывал интерфейс IComparable. В методе CompareTo реализуйте сравнение любым удобным для вас способом. В вашем случае сравнение строк с игнорированием регистра.

person ozgur    schedule 05.05.2017