dpokatski 281b167fe1 lab13 | 7 months ago | |
---|---|---|
.. | ||
readme.md | 7 months ago |
исходный массив
string[] place = {"Дешевый номер", "Обычный номер", "Дорогой номер", "Номер люкс", "Апартаменты"};
список для результатов
var selectedPlace = new List<string>();
foreach(string s in place)
{
// ищем слова начинающиеся на букву "А"
if (s.ToUpper().StartsWith("А"))
selectedPlace.Add(s);
}
сортируем получившийся список
selectedPlace.Sort();
foreach (string s in selectedPlace)
Console.WriteLine(s);
Вывод:
Апартаменты
string[] place = {"Дешевый номер", "Обычный номер", "Дорогой номер", "Номер люкс", "Апартаменты"};
var selectedPlace = from t in place
where t.ToUpper().StartsWith("Н") //фильтрация по критерию
orderby t // упорядочиваем по возрастанию
select t; // выбираем объект
foreach (string s in selectedPlace)
Console.WriteLine(s);
Вывод:
Обычный номер
Методы расширения LINQ
string[] place = {"Дешевый номер", "Обычный номер", "Дорогой номер", "Номер люкс", "Апартаменты"};
var selectedPlace = place
.Where(t=>t.ToUpper().StartsWith("Д"))
.OrderBy(t => t);
foreach (string s in selectedPlace)
Console.WriteLine(s);
Вывод:
Дешевый номер
Выборка сложных объектов
using System;
List<User> users = new List<User>
{
new User {
Name="Максим",
Age=17,
},
new User {
Name="Дмитрий",
Age=18,
},
new User {
Name="Милана",
Age=16,
},
new User {
Name="Георгий",
Age=22,
}
};
var selectedUsers = users.Where(u => u.Age > 16);
foreach (User user in selectedUsers)
Console.WriteLine($"{user.Name} - {user.Age}");
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
Вывод:
Максим - 17
Дмитрий - 18
Георгий - 22
Проекция
using System;
List<User> users = new List<User>
{
new User {
Name="Максим",
Age=17,
},
new User {
Name="Дмитрий",
Age=18,
},
new User {
Name="Милана",
Age=16,
},
new User {
Name="Георгий",
Age=22,
}
};
var items = users.Select(u => new {
FirstName = u.Name,
DateOfBirth = DateTime.Now.Year - u.Age
});
foreach (var n in items)
Console.WriteLine($"{n.FirstName} - {n.DateOfBirth}");
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
Вывод:
Максим - 2007
Дмитрий - 2006
Милана - 2008
Георгий - 2002
Выборка из нескольких источников
using System;
List<User> users = new List<User>()
{
new User {
Name="Максим",
Age=17,
},
new User {
Name="Дмитрий",
Age=18,
},
new User {
Name="Милана",
Age=16,
},
new User {
Name="Георгий",
Age=22,
},
};
List<Place> places = new List<Place>()
{
{"Дешевый номер", "Обычный номер", "Дорогой номер", "Номер люкс", "Апартаменты"};
new Place
{
Mesto = "Дешевый номер",
Price = 999,
},
new Place
{
Mesto = "Обычный номер",
Price = 5000,
},
new Place
{
Mesto = "Дорогой номер",
Price = 20000,
},
new Place
{
Mesto = "Номер люкс",
Price = 100000,
},
new Place
{
Mesto = "Апартаменты",
Price = 500000,
},
};
var people = from user in users
from place in places
select new { Name = user.Name, Place = place.Mesto };
foreach (var p in people)
Console.WriteLine($"{p.Name} - {p.Place}");
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Place
{
public string Mesto { get; set; }
public int Price { get; set; }
}
Вывод:
Максим - Дешевый номер
Максим - Обычный номер
Максим - Дорогой номер
Максим - Номер люкс
Максим - Апартаменты
Дмитрий - Дешевый номер
Дмитрий - Обычный номер
Дмитрий - Дорогой номер
Дмитрий - Номер люкс
Дмитрий - Апартаменты
Милана - Дешевый номер
Милана - Обычный номер
Милана - Дорогой номер
Милана - Номер люкс
Милана - Апартаменты
Георгий - Дешевый номер
Георгий - Обычный номер
Георгий - Дорогой номер
Георгий - Номер люкс
Георгий - Апартаменты
Сортировка
using System;
List<User> users = new List<User>()
{
new User {
Name="Максим",
Age=17,
},
new User {
Name="Дмитрий",
Age=18,
},
new User {
Name="Милана",
Age=16,
},
new User {
Name="Георгий",
Age=22,
},
};
List<Place> places = new List<Place>()
{
new Place
{
Mesto = "Дешевый номер",
Price = 999,
},
new Place
{
Mesto = "Обычный номер",
Price = 5000,
},
new Place
{
Mesto = "Дорогой номер",
Price = 20000,
},
new Place
{
Mesto = "Номер люкс",
Price = 100000,
},
new Place
{
Mesto = "Апартаменты",
Price = 500000,
},
};
var sortedUsers = users.OrderBy(u => u.Name);
foreach (User u in sortedUsers)
Console.WriteLine(u.Name);
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Place
{
public string Mesto { get; set; }
public int Price { get; set; }
}
Вывод:
Дмитрий
Максим
Милана
Георгий
Множественные критерии сортировки
using System;
List<User> users = new List<User>()
{
new User {
Name="Максим",
Age=17,
},
new User {
Name="Дмитрий",
Age=18,
},
new User {
Name="Георгий",
Age=22,
},
new User {
Name="Милана",
Age=16,
},
};
List<Place> places = new List<Place>()
{
new Place
{
Mesto = "Дешевый номер",
Price = 999,
},
new Place
{
Mesto = "Обычный номер",
Price = 5000,
},
new Place
{
Mesto = "Дорогой номер",
Price = 20000,
},
new Place
{
Mesto = "Номер люкс",
Price = 100000,
},
new Place
{
Mesto = "Апартаменты",
Price = 500000,
},
};
var result = users
.OrderBy(u => u.Name)
.ThenBy(u => u.Age);
foreach (User u in result)
Console.WriteLine($"{u.Name} - {u.Age}");
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Place
{
public string Mesto { get; set; }
public int Price { get; set; }
}
Вывод:
Дмитрий - 18
Максим - 17
Милана - 16
Георгий - 22