Lassen Sie uns sagen, dass wir ein Unternehmen haben, die Attribute Att1 und att2 hat, wo att1 haben Werte a, b, c und att2 können 1,2,3 Werte haben. Ist es möglich, LINQ zu verwenden, sodass wir Elemente in der Auflistung sortieren können, indem Sie eine beliebige Sortierregel anwenden, ohne IComparable zu implementieren. Ich stehe vor einem Problem, wenn das Geschäft erfordert, dass auf einigen Bildschirmen Elemente in der Sammlung in einer Weise und in anderen Bildschirmen in anderer Weise sortiert werden. Zum Beispiel kann die Regel angeben, dass Elemente sortiert werden müssen, so dass "b" zuerst aufgeführt wird, dann "a", dann "c" und innerhalb jeder Gruppe "3" zuerst, dann "1" und dann "2".Verwenden LINQ für beliebige
1
Sortierung
A
Antwort
6
Sicher. Sie können OrderBy
mit einem Prädikat verwenden, das mehr oder weniger jede beliebige Art von "Sortierreihenfolge" zurückgibt. Zum Beispiel:
objectsWithAttributes.OrderBy(x =>
{
// implement your "rules" here -- anything goes as long as you return
// something that implements IComparable in the end. this code will sort
// the enumerable in the order 'a', 'c', 'b'
if (x.Attribute== 'a')
return 0;
else if (x.Attribute== 'c')
return 1;
else if (x.Attribute== 'b')
return 2;
}).ThenBy(x =>
{
// implement another rule here?
});
Verwandte Themen
- 1. LINQ-Ring: Beliebige() und Contains() für riesige Sammlungen
- 2. Verwenden glob beliebige Länge Zahlen
- 3. Beliebige bestimmte Ports für NodeJS
- 4. Hash für beliebige Objekte erstellen?
- 5. Beliebige Diagrammbibliothek für ASP CORE?
- 6. Beliebige Dokumentation für xe: objectData?
- 7. Kann ich beliebige Knotenmodule von Clojurescript verwenden?
- 8. Wann sollte ich LINQ für C# verwenden?
- 9. : beliebige Option für Schienen 3 Routen
- 10. Anforderungen für beliebige Typen in boost.odeint
- 11. Android Picker Widget für beliebige Zeichenfolge
- 12. LINQ Verwenden von Primzahlen
- 13. JSON Serializer für beliebige HashMaps in Voldemort
- 14. einen Delegierten für die Gleichheitsvergleich für LINQ verwenden Distinct()
- 15. LINQ to SQL für selbstreferenzierende Tabellen?
- 16. Beliebige Beispiele für Fabric8 Continuous Delivery für PHP?
- 17. C++ beliebige Länge Ganzzahlen
- 18. SIMD-Array für beliebige Array-Längen hinzufügen
- 19. mod_rewrite für eine beliebige Anzahl von Variablen
- 20. Beliebige String-Manipulation Bibliotheken für ChucK?
- 21. Beliebige Proben für mvc6 mit Signalgeber?
- 22. Gibt es eine beliebige Gleitkomma-Bibliothek für C/C++, die beliebige Präzisionsexponenten erlaubt?
- 23. Verwenden von IQueryable mit Linq
- 24. Verwenden von Linq mit WCF
- 25. wie foreach in Linq verwenden
- 26. Verwenden von LINQ mit NHibernate
- 27. XPath konfigurieren und LINQ verwenden
- 28. Verwenden von FormView mit LINQ
- 29. Wie in Linq Dynamics verwenden?
- 30. Index in SelectMany verwenden LINQ