¿Cómo puedo convertir un predicado <T> en una expresión <Predicate <T>> para usar con Moq?

Por favor, ayuda a este novato Linq!

Estoy creando una lista dentro de mi clase bajo prueba, y me gustaría usar Moq para verificar los resultados.

Puedo armar fácilmente un predicado que verifica los resultados de la lista. ¿Cómo hago para que ese predicado se convierta en una expresión?

var myList = new List<int> {1, 2, 3};

Predicate<List<int>> myPredicate = (list) => 
                  {
                      return list.Count == 3; // amongst other stuff
                  };

// ... do my stuff

myMock.Verify(m => m.DidStuffWith(It.Is<List<int>>( ??? )));

??? necesita ser unExpression<Predicate<List<int>>> si puedes entender tantos genéricos. He encontrado respuestas que hacen esto al revés y compilan una expresión en un predicado. Sin embargo, no me están ayudando a entender a Linq.

EDITAR: Lo tengo trabajando con métodos; con expresiones; Solo me gustaría saber si hay alguna forma de hacerlo con una lambda con cuerpo, y si no, ¿por qué no?

Respuestas a la pregunta(2)

Su respuesta a la pregunta