Linq (Language-Integrated Query) представляет простой и удобный язык запросов к источнику данных. В качестве источника данных может выступать объект, реализующий интерфейс ienumerable


SkipWhile: пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы Concat



Download 38,24 Kb.
bet5/7
Sana06.04.2022
Hajmi38,24 Kb.
#531772
TuriЛекции
1   2   3   4   5   6   7
Bog'liq
C# LINQ

SkipWhile: пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы

  • Concat: объединяет две коллекции

  • Zip: объединяет две коллекции в соответствии с определенным условием

  • First: выбирает первый элемент коллекции

  • FirstOrDefault: выбирает первый элемент коллекции или возвращает значение по умолчанию

  • Single: выбирает единственный элемент коллекции, если коллекция содержит больше или меньше одного элемента, то генерируется исключение

  • SingleOrDefault: выбирает единственный элемент коллекции. Если коллекция пуста, возвращает значение по умолчанию. Если в коллекции больше одного элемента, генерирует исключение

  • ElementAt: выбирает элемент последовательности по определенному индексу

  • ElementAtOrDefault: выбирает элемент коллекции по определенному индексу или возвращает значение по умолчанию, если индекс вне допустимого диапазона

  • Last: выбирает последний элемент коллекции

  • LastOrDefault: выбирает последний элемент коллекции или возвращает значение по умолчанию

    Проекция позволяет преобразовать объект одного типа в объект другого типа. Для проекции используется оператор select. Допустим, у нас есть набор объектов следующего класса, представляющего пользователя:



    record class Person(string Name, int Age);

    Но, допустим, нам нужен не весь объект, а только его свойство Name:

    var people = new List

    {
    new Person ("Tom", 23),


    new Person ("Bob", 27),
    new Person ("Sam", 29),
    new Person ("Alice", 24)
    };
    var names = from p in people select p.Name;
    foreach (string n in names)
    Console.WriteLine(n);

    Результат выражения LINQ будет представлять набор строк, поскольку выражение select p.Name выбирает в результирующую выборку только значения свойства Name.
    Tom
    Bob
    Sam
    Alice
    В качестве альтернативы мы могли бы использовать метод расширения Select():

    Select(Func selector)

    Этот метод принимает функцию преобразования в виде делегата Func. Функция преобразования получает каждый объект выборки типа TSource и с его помощью создает объект TResult. Метод Select возвращает коллекцию преобразованных объектов.
    Перепишем предыдущий пример с применением метода Select:



    var people = new List

    {
    new Person ("Tom", 23),


    new Person ("Bob", 27),
    new Person ("Sam", 29),
    new Person ("Alice", 24)
    };
    var names = people.Select(u => u.Name);
    foreach (string n in names)
    Console.WriteLine(n);

    Аналогично можно создать объекты другого типа, в том числе анонимного:

    var people = new List

    {
    new Person ("Tom", 23),


    new Person ("Bob", 27)
    };
    var personel = from p in people
    select new
    {
    FirstName = p.Name,
    Year = DateTime.Now.Year - p.Age
    };
    foreach (var p in personel)
    Console.WriteLine($"{p.FirstName} - {p.Year}");
    record class Person(string Name, int Age);

    Здесь оператор select создает объект анонимного типа, используя текущий объект Person. И теперь результат будет содержать набор объектов данного анонимного типа, в котором определены два свойства: FirstName и Year (год рождения). Консольный вывод программы:
    Tom - 1999
    Bob - 1995
    В качестве альтернативы мы могли бы использовать метод расширения Select():

    // проекция на объекты анонимного типа
    var personel = people.Select(p => new
    {
    FirstName = p.Name,
    Year = DateTime.Now.Year - p.Age
    });



    Download 38,24 Kb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4   5   6   7




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish