Вот мой кодДобавить метод расширения в список
class Student
{
some code
}
static class Filter
{
static void TypeFilter(this List<Student> result, string type)
{
result = result.FindAll(x=>x.type == type);
}
}
, когда я использую этот метод расширения, как
List<Student> a = some code;
a.TypeFilter("someType");
Список не фильтруется, список должен быть ссылочного типа, то почему a не изменился, я сделал что-то неправильно?
Вы должны передать его.Он не изменяет исходную коллекцию, а создает новый. –
@JeroenVannevel Я думаю, вы имеете в виду «Вы переназначили это», а не «Вы должны переназначить его». Переназначение внутри 'TypeFilter' является именно тем, что вызывает проблему здесь. – hvd
@ hvd: правый, это тоже. Я имел в виду код вызова, где был применен только «a.TypeFilter()», но не переназначен на 'a'. –