Odpowiednik anonimowych implementacji interfejsu w języku C #

Pracuję nad tłumaczeniem niektórych kodu z Java na C #, ale mam pewne problemy, może ktoś tam może pomóc?

Mam problemy z odtworzeniem anonimowych implementacji interfejsu, które są powszechnie używane w Javie, ale nie mam pojęcia, jak to zrobić.

Przykładem jest:

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