Рубрики

LINQ | Пусть ключевое слово

Иногда, когда мы работаем с выражением запроса, нам требуется переменная, которая может хранить результат подвыражения, чтобы повторно использовать его в следующем предложении. Этот тип объекта обеспечивается ключевым словом Let. Ключевое слово Let позволяет вам создать переменную диапазона и инициализировать ее результатом выражения запроса, а затем вы можете использовать эту переменную с предстоящим предложением в том же запросе. Когда вы инициализируете переменную диапазона одним значением, после этого вам не разрешается сохранять другое значение в переменной диапазона.

Пример 1:

// C # программа для иллюстрации
// концепция ключевого слова let

using System;

using System.Linq;

  

class GFG {

  

    // Основной метод

    static public void Main()

    {

  

        // Источник данных

        int[] sequence = {2, 78, 90,

                          5, 45, 6};

  

        // Используем ключевое слово let

        var result = from s in sequence

            let a1

            = s + 100 where a1 > 150 select a1;

  

        // Показать результат

        foreach(var val in result)

        {

            Console.WriteLine(val);

        }

    }

}

Выход:

178
190

Объяснение: В приведенном выше примере результатом является переменная запроса, в которой хранится результат данного выражения запроса. В выражении запроса мы создали переменную диапазона, используя ключевое слово let , то есть a1 . В a1 мы храним результат выражения s + 100 . После этого мы используем эту переменную в предложении where для сравнения каждого элемента больше 150 или нет, и в заключение мы печатаем те элементы, которые больше 150 .

Пример: 2

// C # программа для печати названия тех
// сотрудники, имена которых содержат больше
// чем 4 символа в нижнем регистре

using System;

using System.Linq;

using System.Collections.Generic;

  
// Данные сотрудника

public class Employee {

  

    public int emp_id

    {

        get;

        set;

    }

  

    public string emp_name

    {

        get;

        set;

    }

  

    public string emp_gender

    {

        get;

        set;

    }

  

    public string emp_hire_date

    {

        get;

        set;

    }

  

    public int emp_salary

    {

        get;

        set;

    }

}

  

class GFG {

  

    // Основной метод

    static public void Main()

    {

        List<Employee> emp = new List<Employee>() {

  

            new Employee() {emp_id = 209, emp_name = "ANU", emp_gender = "Female",

                                 emp_hire_date = "12/3/2017", emp_salary = 20000},

  

            new Employee() {emp_id = 210, emp_name = "SIYA", emp_gender = "Female",

                                  emp_hire_date = "22/4/2018", emp_salary = 30000},

  

            new Employee() {emp_id = 211, emp_name = "ROHIT", emp_gender = "Male",

                                  emp_hire_date = "3/5/2016", emp_salary = 40000},

                              

            new Employee() {emp_id = 212, emp_name = "SUPRIYA", emp_gender = "Female",

                                      emp_hire_date = "4/8/2017", emp_salary = 40000},

  

            new Employee() {emp_id = 213, emp_name = "ANIL", emp_gender = "Male",

                                emp_hire_date = "12/1/2016", emp_salary = 40000},

  

            new Employee() {emp_id = 214, emp_name = "ANJU", emp_gender = "Female",

                                  emp_hire_date = "17/6/2015", emp_salary = 50000},

        };

  

        // Запрос на печать названия тех

        // сотрудники, имена которых содержат больше

        // чем 4 символа в нижнем регистре

        // Использование предложения let

        var res = from e in emp

            let name

            = e.emp_name.ToLower()

                where name.Length

            > 4 select name;

  

        foreach(var val in res)

        {

            Console.WriteLine("Employee Name: {0}", val);

        }

    }

}

Выход:

Employee Name: rohit
Employee Name: supriya

Рекомендуемые посты:

LINQ | Пусть ключевое слово

0.00 (0%) 0 votes