Contrapartida para implementações de interface anônima em c #

Eu estou trabalhando em traduzir algum código do Java para o C #, mas estou tendo alguns problemas, talvez alguém lá fora possa ajudar?

Eu tenho problemas ao tentar replicar implementações de interface anônimas que são amplamente usadas em Java, mas não tenho idéia de como.

Um exemplo é:

List<DATA> queue1 = new ArrayList<DATA>(dataSet);
            // Sort by distance to the first promoted data
            Collections.sort(queue1, new Comparator<DATA>() {
                @Override
                public int compare(DATA data1, DATA data2) {
                    double distance1 = distanceFunction.calculate(data1, promoted.first);
                    double distance2 = distanceFunction.calculate(data2, promoted.first);
                    return Double.compare(distance1, distance2);
                }
            });

questionAnswers(5)

yourAnswerToTheQuestion