Синтаксис метода в 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 очень мощный и значительно упрощает работу с объектами коллекции, что вы будете делать часто. Вот список всех Операций, которые вы можете выполнять.