Список используемых методов расширения LINQ
- Select: определяет проекцию выбранных значений
- Where: определяет фильтр выборки
- OrderBy: упорядочивает элементы по возрастанию
- OrderByDescending: упорядочивает элементы по убыванию
- ThenBy: задает дополнительные критерии для упорядочивания элементов возрастанию
- ThenByDescending: задает дополнительные критерии для упорядочивания элементов по убыванию
- Join: соединяет две коллекции по определенному признаку
- GroupBy: группирует элементы по ключу
- ToLookup: группирует элементы по ключу, при этом все элементы добавляются в словарь
- GroupJoin: выполняет одновременно соединение коллекций и группировку элементов по ключу
- Reverse: располагает элементы в обратном порядке
- All: определяет, все ли элементы коллекции удовлятворяют определенному условию
- Any: определяет, удовлетворяет хотя бы один элемент коллекции определенному условию
- Contains: определяет, содержит ли коллекция определенный элемент
- Distinct: удаляет дублирующиеся элементы из коллекции
- Except: возвращает разность двух коллекцию, то есть те элементы, которые содератся только в одной коллекции
- Union: объединяет две однородные коллекции
- Intersect: возвращает пересечение двух коллекций, то есть те элементы, которые встречаются в обоих коллекциях
- Count: подсчитывает количество элементов коллекции, которые удовлетворяют определенному условию
- Sum: подсчитывает сумму числовых значений в коллекции
- Average: подсчитывает cреднее значение числовых значений в коллекции
- Min: находит минимальное значение
- Max: находит максимальное значение
- Take: выбирает определенное количество элементов
- Skip: пропускает определенное количество элементов
- TakeWhile: возвращает цепочку элементов последовательности, до тех пор, пока условие истинно
- SkipWhile: пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы
- Concat: объединяет две коллекции
- Zip: объединяет две коллекции в соответствии с определенным условием
- First: выбирает первый элемент коллекции
- FirstOrDefault: выбирает первый элемент коллекции или возвращает значение по умолчанию
- Single: выбирает единственный элемент коллекции, если коллекция содердит больше или меньше одного элемента, то генерируется исключение
- SingleOrDefault: выбирает первый элемент коллекции или возвращает значение по умолчанию
- ElementAt: выбирает элемент последовательности по определенному индексу
- ElementAtOrDefault: выбирает элемент коллекции по определенному индексу или возвращает значение по умолчанию, если индекс вне допустимого диапазона
- Last: выбирает последний элемент коллекции
- LastOrDefault: выбирает последний элемент коллекции или возвращает значение по умолчанию
Передача параметров в методы
|
|
Параметры можно передавать по значению и по ссылке. Если не указано обратное, то в С# все параметры передаются по значению. Если переменная передается по значению, вызываемый метод получает копию этой переменной, а это значит, что все изменения в ней по завершении метода будут утеряны.
|
|
Для передачи параметров по ссылке в языке С# предусмотрено два ключевых слова— ref и out. Первое из них требует предварительной инициализации объекта, на который передается ссылка, а второе — не требует.
class Rectangle
{ int xPos;
int yPos;
public Rectangle()
{ xPos = yPos = 0; }
public void GetPosition(out int x, out int y)
{ x = xPos;
у = yPos;
}
}
class RefParamApp
{ static void Main(string[] args)
{ Rectangle rect;
rect = new RectangleO;
int xCurrent, yCurrent;
rect.GetPosition(out xCurrent, out yCurrent);
Console.WriteLine("Расположение прямоугольника: ({0}, {1})”, xCurrent, yCurrent);
}}
Именованные аргументы
Обычно параметры должны передаваться в метод в том же порядке, в котором они определены. Именованные аргументы позволяют передавать параметры в любом порядке. То есть для приведенного ниже метода:
string FullName(string firstName, string lastName)
{
return firstName + " " + lastName;
}
возможны следующие вызовы, которые вернут одно и то же полное имя:
Fu1IName("John", "Doe");
FullName(lastName: "Doe", firstName: "John");
Необязательные аргументы
|
|
Параметры также могут быть необязательными. Для таких параметров должны определяться значения по умолчанию. Необязательные параметры должны располагаться последними в списке. Поэтому следующее объявление метода будет неправильным:
void TestMethod(int optionalNumber = 10, int notOptionalNumber)
{
System.Console.Write(optionalNumber + notOptionalNumber);
}
Чтобы этот метод работал, параметр optionalNumber должен быть определен последним. Если вас не устраивают необязательные параметры, для достижения того же эффекта можно применить перегрузку методов.
Дата добавления: 2018-04-05; просмотров: 770; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!