Как вызвать метод generi c типа Find, FindAll - PullRequest
0 голосов
/ 14 марта 2020

я промежуточный C# развиваюсь. Я пытаюсь реализовать некоторые методы в моей программе. Но это давало бессонные ночи. Например, я уже объявил свойства класса впереди.

Employee employe = new Employee(){
    ID = 111,
    Name = "Eric Trump",
    Gender = "Male",
    Salary = 900000
};
Employee employe2 = new Employee()
{
    ID = 112,
    Name = "Ayo",
    Gender = "Female",
    Salary = 8900
};

List<Employee> listemp = new List<Employee>();
listemp.Add(employe);
listemp.Add(employe2);

Как использовать Find, FindAll() или FindLast()?

Ответы [ 2 ]

3 голосов
/ 14 марта 2020

Вы можете сделать это, передав Predicate<T> делегату Find, FindLast или FindAll методы

List<Employee> listemp = new List<Employee>();
listemp.Add(employe);
listemp.Add(employe2);

var result = listemp.FindLast(e => e.ID == 112); //or listemp.Find(e => e.ID == 112)

e => e.ID == 112 называется лямбда-выражение , это просто более удобный способ указать анонимного делегата, более подробную информацию можно найти по адресу Delegates and lambdas

1 голос
/ 14 марта 2020

Просто используйте лямбда-выражения:

List<string> lists = new List<string>()
{
    "1", "2", "3"
};
var all = lists.FindAll(s => s == "1");

Подробнее о Find all здесь.

ОБНОВЛЕНИЕ:

Лямбда-выражение - это более короткий способ представления анонимных методов. Таким образом, вы можете использовать их следующим образом:

List<Employee> employees = new List<Employee>()
{
    new Employee(){
       Id = 111,
       Name = "Eric Trump",
       Gender = "Male",
       Salary = 900000
    },
    new Employee(){
        Id = 112,
        Name = "Ayo",
        Gender = "Female",
        Salary = 8900
    }
};

var findAll = employees.FindAll(s => s.Id == 111);
var findLast = employees.FindLast(s => s.Id == 111);
var find = employees.Find(s => s.Id == 111);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...