Мне кажется странным, что универсальный List<T>
включает метод Remove
для удаления элементов по значению, но не включает перегрузку
это берет IComparer<T>
вместе со значением и просто полагается на средство сравнения равенства по умолчанию, чтобы найти элемент в списке. Относительно недавно
Я использовал List<T>
для удержания клавиш SortedList<K,V>
, чтобы сделать более поздний ограниченный , и понял, что при удалении элементов из обоих списков
Я не мог использовать SortedList<K,V>.Comparer
, чтобы обеспечить синхронизацию двух списков. Как я могу реализовать отсутствующую перегрузку как метод расширения?
public static bool Remove<T>(this List<T> source, T item, IComparer<T> comparer)
{
// TODO
}