Ich weiß, dass es das List<string> gibt, aber ich muss ein Set<string> verwenden. Gibt es eine Möglichkeit, es alphabetisch zu sortieren?

Set reasons = {
  'Peter',
  'John',
  'James',
  'Luke',
}
2
Leonidas Yopan 6 Okt. 2020 im 23:35

2 Antworten

Beste Antwort

Verwenden Sie stattdessen eine SplayTreeSet ::

import 'dart:collection';

...

final sortedSet = SplayTreeSet.from(
  {'Peter', 'John', 'James', 'Luke'},
  // Comparison function not necessary here, but shown for demonstrative purposes 
  (a, b) => a.compareTo(b), 
);
print(sortedSet);

// Prints: {James, John, Luke, Peter}

Wie jamesdlin betont, ist die Vergleichsfunktion nicht erforderlich, wenn der Typ Comparable implementiert.

3
Abion47 6 Okt. 2020 im 22:43

Sie können einen Satz in eine Liste konvertieren und die Sortiermethode aufrufen. Dann können Sie diese Liste erneut in einen Satz konvertieren. Sie können auch eine praktische Erweiterungsmethode für Set erstellen, die dasselbe tut.

Set reasons = {
  'Peter',
  'John',
  'James',
  'Luke',
};
final reasonsList = reasons.toList();
reasonsList.sort();
print(reasonsList.toSet());
3
Tirth Patel 6 Okt. 2020 im 20:41