¿Cuál es la mejor manera de devolver dos listas en C #?

Estoy casi avergonzado de hacer esta pregunta, pero como programador de C desde hace mucho tiempo, siento que quizás no conozco la mejor manera de hacerlo en C #.

Tengo una función miembro que necesito para devolver dos listas de un tipo personalizado (List<MyType>) y sé de antemano que siempre tendré un valor de retorno de solo dos de estas listas.

Las opciones obvias son:

public List<List<MyType>> ReturnTwoLists();

o

public void ReturnTwoLists(ref List<MyType> listOne, ref List<myType> listTwo);

Ambos parecen ser no óptimos.

¿Alguna sugerencia sobre cómo mejorar esto?

La primera forma no deja claro en la sintaxis que solo se devuelven 2 listas, y la segunda usa referencias en lugar de un valor de retorno, que parece no ser c #.

Respuestas a la pregunta(5)

Su respuesta a la pregunta