John Skeets responde a esta pregunta, Select all unique combinations of a single list, with no repeats, using LINQ, funciona asombrosamente.Seleccione todas las combinaciones únicas de una sola lista, sin repeticiones, usando LINQ (Parte 2)
Sin embargo, alguien puede romper componente a componente del funcionamiento interno de cómo está funcionando la primera respuesta:
List<int> slotIds = new List<int> {1, 2, 3};
var query = slotIds.SelectMany((value, index) => slotIds.Skip(index + 1),
(first, second) => new { first, second });
¿Y por qué no preguntas eso en un comentario bajo esa respuesta? –