Qual é a melhor maneira de retornar duas listas em c #?

Estou quase envergonhado de fazer essa pergunta, mas como programador C há muito tempo sinto que talvez eu não esteja ciente da melhor maneira de fazer isso em C #.

Eu tenho uma função de membro que preciso retornar duas listas de um tipo personalizado (List<MyType>) e eu sei de antemão que sempre terei um valor de retorno de apenas duas dessas listas.

As opções óbvias são:

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

ou

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

Ambos parecem não ser ótimos.

Alguma sugestão sobre como melhorar isso?

A primeira maneira não deixa claro na sintaxe que apenas duas listas estão sendo retornadas, e a segunda usa referências, em vez de um valor de retorno, que parece não-c #.

questionAnswers(5)

yourAnswerToTheQuestion