У меня есть 2 списка.Я хочу сравнить каждый элемент с каждым элементом для обоих списков, используя LINQ (вместо использования, скажем, вложенного цикла).Но Содержимое не отвечает моим потребностям, потому что мне нужно сделать пользовательское сравнение.Я думаю, что мне нужен пользовательский компаратор, но я не уверен на 100%.
Я не думаю, что это должно быть слишком сложно, но не уверен, что именно тот инструмент, который мне нужен для этого.2 списка содержат разные и разные типы объектов.
Обновление:
Извините, если я не ясно.У меня есть 2 списка (или перечислимых), я мог бы сделать что-то вроде этого:
foreach(item i in list1)
foreach(otherItemType in List2)
{
if ( CompareItem(x) ) do something;
}
То, что я хочу сделать, это что-то вроде этого:
var matches = myList1.Where(t => myList2.Something(t) )
Где Something это пользовательский компаратор,возможно я могу переопределить сравнение равных?Я мог бы использовать .Contains
, но мне нужно сделать свою собственную логику для сравнения.
Обновление: я думал об использовании IEqualityComparer
, но он настроен на использование типов T, T и T, Y.Могут быть некоторые общие ограничения, которые я мог бы использовать для решения этой проблемы.Я чувствовал, что это должно быть легко / просто.