Если вы посмотрите на определение Find
, public T Find (Predicate<T> match)
, вы увидите, что он получает Predicate<T>
, который является не чем иным, как функцией с параметром T
и возвращаемым значением bool
, Func<T, bool>
. Это фактически означает, что последовательность элементов будет отфильтрована на основе предоставленной функции.
Один из возможных способов указать Func<T, bool>
- использование языковой конструкции C #, называемой лямбда-выражением. При этом x => x.type == pt...
является лямбда-выражением, которое определяет условия элемента для поиска.
Рассматривая:
Piece p = Pieces.Find(x => x.type == pt && x.visualIndex == visualIndex)
Цель состоит в том, чтобы отфильтровать Pieces
на основе type
и visualIndex
, где x
равно Piece
. Не путайте с x
, вы можете использовать любой литерал. Вы можете прочитать это как: Дайте мне каждый кусок x, где x.type - это pt, а x.visualIndex - это visualIndex