У меня есть этот класс (частичный список):поиска различий в наборах
class CiscoSwitch
{
private string _SwitchName = string.Empty;
public SwitchName {get {return _SwitchName;} set{_SwitchName=value; }}
}
У меня есть 2 списков объектов CiscoSwitch. Я пытаюсь сравнить их, чтобы выбрать те, которые не дублируются. Мне нужны только дубликаты. Я попробовал выражение Lambda, но получил ошибку компилятора, что CiscoSwitch был не-дегейтным.
Я теперь интересно, о чем-то вроде этого - это позволит мне использовать метод List.Except() (я думаю):
static class SwitchComparer
{
static bool CompareSwitchNames(CiscoSwitch s1, CiscoSwitch s2)
{
if (sw1.SwitchName == s2.SwitchName) {return true;}
else {return false;}
}
}
// to find the differences
// this is a method of the CiscoSwitchClass
private List<CiscoSwitch> FindDifferences(List<CiscoSwitch> List1, List<CiscoSwitch> List2)
{
return List1.Except(List2, SwitchComparer.CompareSwitchNames();
}
это также может быть сделано с Еогеасп, но я думаю, что это путь намного чище, если он правильный. Я также думаю, что есть другие атрибуты CiscoSwitch, которые, возможно, когда-нибудь захочу сравнить, так что я могу добавить методы в класс SwitchComparer, поскольку они мне нужны.
Какой вопрос? – Jodrell