Zastanawiam się, czy możliwe jest usunięcie wszystkich obiektów tego samego rodzaju z ogólnej listy przy użyciu metod rozszerzeń. coś takiego kodu:Usunąć obiekty określonego rodzaju z listy <T> w języku C# za pomocą metod rozszerzających?
public static Remove<T>(this List<[any type]> list)
{
// some code to remove the objects of type T from the list
}
mogę to zrobić za pomocą następującego kodu:
public static Remove<T, K>(this List<K> list)
{
// some code to remove the objects of type T from the List<K>
}
ale chcę po prostu użyć typu (t), bez potrzeby dodawania jakichkolwiek typ K. przez robi, że użytkownik może korzystać z tej metody rozszerzenie po prostu napisać to:
List<object> list = new List<object>();
list.Add(1);
list.Add("text");
// remove all int type objects from the list
list.Remove<int>();
metoda rozszerzenie, które można użyć, aby zrobić coś dokładnie jak wyżej kod jest co naprawdę muszę tutaj.
pozdrawiam
, więc nie musimy już podawać typów zwracanych; o) –
OfType zwróci każdy obiekt, który może być rzutowany na typ. To może usunąć zbyt wiele elementów ... –
Działa z kilkoma poprawkami :) –