Η λήψη της μέγιστης τιμής από έναν τύπο απαρίθμησης είναι μια συνηθισμένη εργασία που αντιμετωπίζουν οι προγραμματιστές. Αυτό απαιτείται σε σενάρια όπου πρέπει να επικυρώσετε την είσοδο χρήστη ή να χειριστείτε ορισμένους πόρους με βάση την τιμή enum. Το C# παρέχει έναν απλό τρόπο για να το πετύχετε αυτό χρησιμοποιώντας την κλάση Enum και λίγο LINQ.
Ας εξερευνήσουμε τη λύση που κάνει την ανάκτηση της μέγιστης τιμής μιας απαρίθμησης τόσο εύκολη όσο η πίτα.
δημόσιος αριθμός MyEnum
{
Επιλογή 1 = 1,
Επιλογή 2 = 2,
Επιλογή 3 = 3
}
...
δημόσια int GetMaxEnumValue()
{
επιστροφή Enum.GetValues(typeof(MyEnum)).Cast().Μέγιστη();
}
Αυτό το σύντομο κομμάτι κώδικα κάνει όλη τη δουλειά για την ανάκτηση της υψηλότερης τιμής στο enum. Πώς λειτουργεί όμως;
Deep Dive Into The Code
Το `Enum.GetValues(typeof(MyEnum))` είναι το πρώτο κρίσιμο κομμάτι που πρέπει να γίνει κατανοητό. Αυτή η ενσωματωμένη μέθοδος .NET επιστρέφει έναν πίνακα που περιέχει τις τιμές των σταθερών σε μια καθορισμένη απαρίθμηση. Ο τύπος απαρίθμησης μεταβιβάζεται ως παράμετρος στη μέθοδο χρησιμοποιώντας τη λέξη-κλειδί «typeof».
Μόλις έχουμε τον πίνακα, πρέπει να τον ρίξουμε σε ακέραιους αριθμούς. Αυτό γίνεται χρησιμοποιώντας το .Cast() μέθοδος που αποτελεί μέρος του LINQ (Language Integrated Query). Το LINQ είναι ένα σύνολο τεχνικών και μεθόδων στο .NET που μας επιτρέπει να εργαζόμαστε με δεδομένα με πιο διαισθητικό και ευέλικτο τρόπο.
Μετά τη μετάδοση των τιμών σε ακέραιους αριθμούς, η λήψη της μέγιστης τιμής είναι τόσο απλή όσο η κλήση της μεθόδου .Max(), ένα άλλο εξαιρετικό εργαλείο που παρέχεται από το LINQ. Αυτή η μέθοδος επιστρέφει τη μέγιστη τιμή σε μια συλλογή τιμών int.
Αξιοποιώντας τις βιβλιοθήκες Enum και LINQ
Η κλάση Enum είναι μέρος του χώρου ονομάτων συστήματος στο .NET και παρέχει πολλές στατικές μεθόδους για εργασία με απαριθμήσεις. Είναι η βασική βιβλιοθήκη όταν πρέπει να εκτελέσετε οποιαδήποτε λειτουργία που σχετίζεται με τύπους enum.
Από την άλλη πλευρά, το LINQ, μέρος του χώρου ονομάτων System.Linq, είναι ένα από τα πιο ισχυρά χαρακτηριστικά της C#. Παρέχει διάφορες μεθόδους για τον αποτελεσματικό χειρισμό των συλλογών, όπως τη λήψη των μέγιστων, ελάχιστων ή μέσων τιμών, ταξινόμηση και φιλτράρισμα δεδομένων.
Δείτε Περισσότερα