Синтаксис метода в LINQ - мощная функция C # , используемая для фильтрации большого набора данных. Он использует синтаксис SQL для фильтрации объектов в коллекции.

Объявите наш класс сотрудников

Прежде чем углубляться в фрагменты кода, мы должны сначала создать класс с именем «Employee» и назначить список с именем «Employees» для коллекции «Employee »Объекты.

class Program
    {
        static void Main(string[] args)
        {
            List<Employee> Employees = new List<Employee>() { 
                new Employee(5112, "John", 1000.34),
                new Employee(5113, "Kennedy", 20045.10),
                new Employee(5115, "John", 5000.23),
                new Employee(5116, "Anna", 32400.43)
            };
        }
    }
    public class Employee
    {
        public int id { get; set; }
        public string name { get; set; }
        public double salary { get; set; }
        public Employee(int _id, string _name, double _salary)
        {
            id = _id;
            name = _name;
            salary = _salary;
        }
    }

Где

Использование предложения where для выбора конкретных объектов на основе заданного условия.

var empList = Employees.Where(emp => emp.name == "John");
           foreach(var emp in empList){
               Console.WriteLine(emp.id);
               // 5112
               // 5115
           }

Это отфильтрует список сотрудников и вернет id тех, у кого имя «Джон». Вам может быть интересно, что такое «emp» и синтаксис внутри параметра Where.

Итак, emp представляет собой ссылку на объект e mployee, так что мы можем перебирать все значения внутри employee List и проверьте, имеет ли emp.name значение «John» или нет.

Выражение (emp = ›emp.name ==« John ») называется« Лямбда-выражение », а этот оператор« = ›» вызывает Лямбда-оператор.

Выбирать

Select вернет true, если объект в списке employee соответствует заданному условию, и false, если нет.

var empList = Employees.Select(emp => emp.salary > 1000.50);
            foreach(var emp in empList){
                Console.WriteLine(emp);
                // False, True, True, True.
            }

Группа по

Группирует элементы списка в соответствии с указанным свойством объекта. Вероятно, это не самый подходящий пример для показа GroupBy, но вы должны заметить одну вещь: emp - это набор групп, где каждая группа имеет набор сотрудник Объекты.

Итак, я преобразовал emp в список и получил первый элемент, а затем - зарплату. Опять же, возможно, это не лучший пример, но вы можете добиться большего с помощью GroupBy.

var empList = Employees.GroupBy(emp => emp.name);
           foreach(var emp in empList){
           Console.WriteLine(emp.ToList()[0].salary);
           // 1000.34, 20045.10, 32400.43
 }

Максимум

Получите максимальную зарплату для всех сотрудников.

var empList = Employees.GroupBy(emp => emp.name);
           var empVar = Employees.Max(emp => emp.salary);
           Console.WriteLine(empVar); // 32400.43
 }

Сумма

Получите сумму всех зарплат всех сотрудников.

var empList = Employees.GroupBy(emp => emp.name);
           var empVar = Employees.Sum(emp => emp.salary);
           Console.WriteLine(empVar); // 58446.1
 }

Сортировать по

Получите список всех сотрудников, упорядоченных по их идентификаторам. Вы можете выбрать По убыванию или По возрастанию (по умолчанию).

var empList = Employees.GroupBy(emp => emp.name);
           // var empList = Employees.OrderBy(emp => emp.id);
           var empList = Employees.OrderByDescending(emp => emp.id);
                foreach(var emp in empList){
                    Console.WriteLine(emp.name); 
                    // Anna, John, Kennedy, John.
                }
 }

Заключение

Теперь вы можете увидеть, насколько Синтаксис метода в LINQ очень мощный и значительно упрощает работу с объектами коллекции, что вы будете делать часто. Вот список всех Операций, которые вы можете выполнять.