Looking for c# Keywords? Try Ask4Keywords

C# Language => Лямбда-оператор


пример

3.0

Оператор => имеет тот же приоритет, что и оператор присваивания = и является право-ассоциативным.

Он используется для объявления лямбда-выражений, а также широко используется с запросами LINQ :

string[] words = { "cherry", "apple", "blueberry" };

int shortestWordLength = words.Min((string w) => w.Length); //5

При использовании в расширениях LINQ или запросах тип объектов обычно может быть пропущен, поскольку он выводится компилятором:

int shortestWordLength = words.Min(w => w.Length); //also compiles with the same result

Общая форма лямбда-оператора следующая:

(input parameters) => expression

Параметры выражения лямбда указаны перед оператором => , а фактическое выражение / оператор / блок, который должен быть выполнен, находится справа от оператора:

// expression
(int x, string s) => s.Length > x

// expression
(int x, int y) => x + y

// statement
(string x) => Console.WriteLine(x)

// block
(string x) => {
        x += " says Hello!";
        Console.WriteLine(x);
    }

Этот оператор может использоваться для простого определения делегатов без написания явного метода:

delegate void TestDelegate(string s);

TestDelegate myDelegate = s => Console.WriteLine(s + " World");

myDelegate("Hello");

вместо

void MyMethod(string s)
{
    Console.WriteLine(s + " World");
}

delegate void TestDelegate(string s);

TestDelegate myDelegate = MyMethod;

myDelegate("Hello");