Простое предложение select
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
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; } } |
1 |
8 10 |
Предложение select в виде анонимного типа
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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; } } |
1 2 3 4 5 6 7 8 9 10 |
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 |
Передача значения в метод
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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 и методы преобразования
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
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; } } |
1 |
ONE TWO SIX |
Предложение select и арифметические действия
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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; } } |
1 |
0 10 20 30 40 50 60 70 80 90 100 |
- из чего состоит запрос
- переменная последовательности имеет неявный тип var
- переменная последовательности имеет тип IEnumerable<T>
- отложенное выполнение запроса
- принудительное выполнение запроса
- синтаксис запросов
- синтаксис методов
- источник данных
- from
- where
- select
- orderby
- group
- into
- let
- методы класса Enumerable
- создание базы данных
- вставка данных в базу
- изменение данных в базе
- удаление данных из базы
- транзакция
Преобразование в XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
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; } } |
1 2 3 4 5 6 |
<?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> |
Преобразование массива строк в массив целых чисел
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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; } } |
1 |
0 10 20 30 40 50 60 70 80 90 100 |