It's just a lambda expression that uses _
instead of x
for its parameter. _
is a valid identifier so it can be used as a parameter name.
As mentioned in the comments, it's a convention among some developers to call it _
to indicate that it's not actually used by the lambda expression, but it's no more than that: a convention.
Note that this is not the same thing as a discard (introduced several years after this answer), which is a special variable for assigning values that aren't going to be used and will instead be discarded. Unlike discarded values, _
parameters continue to exist in lambda scope; they just aren't used anywhere in the lambda expression. And there can only be one _
in scope at a time.
C# style: Lambdas, _ => or x =>?
– Aparri