Простое предложение 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
- из чего состоит запрос
- переменная последовательности имеет неявный тип var
- переменная последовательности имеет тип IEnumerable<T>
- отложенное выполнение запроса
- принудительное выполнение запроса
- синтаксис запросов
- синтаксис методов
- источник данных
- from
- where
- select
- orderby
- group
- into
- let
- методы класса Enumerable
- создание базы данных
- вставка данных в базу
- изменение данных в базе
- удаление данных из базы
- транзакция
Преобразование в 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