LINQ select

Простое предложение select

using System;
 
//добавить ссылку
using System.Linq;
 
class Program {
 public static int Main() {
 
  //источник данных
  int[] ara = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
 
  //создание запроса
  var query = 
   from val in ara
   where (val % 2 == 0) && (val > 6)
   select val;
 
  //выполнение запроса
  foreach(var i in query) {
   Console.Write("{0} ", i);
  }
  Console.WriteLine();
 
  Console.ReadKey();
  return 0;
 }
}
8 10 

Предложение select в виде анонимного типа

using System;
 
//добавить ссылку
using System.Linq;
 
class Program {
 public static int Main() {
 
  //источник данных
  int[] ara = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
 
  //создание запроса
  var query = 
   from val in ara
   select new { val, a = 2, res = val * 2  };
 
  //выполнение запроса
  foreach(var i in query) {
   Console.WriteLine("{0} * {1} = {2}", i.val, i.a, i.res);
  }
 
  Console.ReadKey();
  return 0;
 }
}

 

0 * 2 = 0
1 * 2 = 2
2 * 2 = 4
3 * 2 = 6
4 * 2 = 8
5 * 2 = 10
6 * 2 = 12
7 * 2 = 14
8 * 2 = 16
9 * 2 = 18 

Передача значения в метод

using System;
 
//добавить ссылку
using System.Linq;
using System.Collections.Generic;
 
class One {
 public int Fun(int arg) {
  return (arg * 2);
 }
}
 
class Program {
 public static int Main() {
 
  One O1 = new One();
  One O2 = new One();
  One O3 = new One();
 
  //источник данных
  List<One> ara = new List<One>() { O1, O2, O3 };
 
  //создание запроса
  var query = 
   from val in ara
   select val.Fun(5);
 
  //выполнение запроса
  foreach(var i in query) {
   Console.Write("{0} ", i);
  }
  Console.WriteLine();
 
  Console.ReadKey();
  return 0;
 }
}

Предложение select и методы преобразования

using System;
 
//добавить ссылку
using System.Linq;
 
class Program {
 public static int Main() {
 
  //источник данных
  string[] ara = new string[] { "one", "two", "three", "four", "five", "six", "seven"  };
 
  //создание запроса
  var query =
   from val in ara
   where val.Length == 3
   select val.ToUpper();
 
  //выполнение запроса
  foreach(var i in query) {
   Console.Write("{0} ", i);
  }
  Console.WriteLine();
 
  Console.ReadKey();
  return 0;
 }
}
ONE TWO SIX 

Предложение select и арифметические действия

using System;
 
//добавить ссылку
using System.Linq;
 
class Program {
 public static int Main() {
 
  //источник данных
  int[] ara = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
 
  //создание запроса
  var query =
   from val in ara
   select val*10;
 
  //выполнение запроса
  foreach(var i in query) {
   Console.Write("{0} ", i);
  }
  Console.WriteLine();
 
  Console.ReadKey();
  return 0;
 }
}
0 10 20 30 40 50 60 70 80 90 100 

Преобразование в XML

using System;
 
//добавить ссылку
using System.Linq;
using System.Collections.Generic;
//добавить ссылку
//подключить пространство имен
using System.Xml;
using System.Xml.Linq;
 
class Book {
 public int IDBook {set; get;}
 public string Name {set; get;}
 public string Author {set; get;}
 public int Amount {set; get;}
 public decimal Price {set; get;}
}
 
class Program {
 public static int Main() {
 
  //источник данных
  List<Book> ara = new List<Book>() {
   new Book() {
    IDBook = 1,
    Name = "Евгений Онегин",
    Author = "Пушкин А.С.",
    Amount = 10,
    Price = 10.15m
   },
   new Book() {
    IDBook = 2,
    Name = "Мертвые души",
    Author = "Гоголь Н.В.",
    Amount = 20,
    Price = 20.25m
   },
   new Book() {
    IDBook = 3,
    Name = "Мцыри",
    Author = "Лермонтов М.Ю.",
    Amount = 30,
    Price = 30.35m
   }
  };
 
  //создание запроса
  var query = new XElement("books", 
   from val in ara
   let x = String.Format("{0}", val.IDBook)
   select new XElement("book",
    new XAttribute("IDBook", x),
    new XAttribute("Name", val.Name),
    new XAttribute("Author", val.Author),
    new XAttribute("Amount", String.Format("{0}", val.Amount)),
    new XAttribute("Price", String.Format("{0}", val.Price))
   )
  );
 
  //выполнение запроса
  Console.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
  Console.WriteLine(query);
 
  Console.ReadKey();
  return 0;
 }
}
<?xml version="1.0" encoding="utf-8" ?>
<books>
 <book IDBook="1" Name="Евгений Онегин" Author="Пушкин А.С." Amount="10" Price="10,15" />
 <book IDBook="2" Name="Мертвые души" Author="Гоголь Н.В." Amount="20" Price="20,25" />
 <book IDBook="3" Name="Мцыри" Author="Лермонтов М.Ю." Amount="30" Price="30,35" />
</books> 

Преобразование массива строк в массив целых чисел



using System;
 
//добавить ссылку
using System.Linq;
 
class Program {
 public static int Main() {
 
  string[] ara1 = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
 
  int[] ara2 = ara1.Select(val => Int32.Parse(val)).ToArray();
 
  foreach(var i in ara2) {
   Console.Write("{0} ", i*10);
  }
  Console.WriteLine();
 
  Console.ReadKey();
  return 0;
 }
}
0 10 20 30 40 50 60 70 80 90 100 
Обновлено: 07.01.2020 — 16:07

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.