Existe C # idiomático equivalente al operador de coma de C?

Estoy usando algunas cosas funcionales en C # y sigo estancado en el hecho de queList.Add no devuelve la lista actualizada.

En general, me gustaría llamar a una función en un objeto y luego devolver el objeto actualizado.

Por ejemplo, sería genial si C # tuviera un operador de coma:

((accum, data) => accum.Add(data), accum)

Podría escribir mi propio "operador de coma" como este:

static T comma(Action a, Func<T> result) {
    a();
    return result();
}

Parece que funcionaría, pero el sitio de la llamada sería feo. Mi primer ejemplo sería algo como:

((accum, data) => comma(accum.Add(data), ()=>accum))

¡Suficientes ejemplos! ¿Cuál es la forma más limpia de hacer esto sin que otro desarrollador venga más tarde y arrugue su nariz ante el olor del código?