Πίνακας περιεχομένων:
Βίντεο: FNAF The Musical -The Complete Series (Live Action feat. Markiplier, Nathan Sharp, & MatPat) 2024
Μέρος του C # 5. 0 All-in-One για τα Dummies Εξαπάτηση
Πολλές μεταβλητές είναι για την αποθήκευση ενός πράγμα, αριθμό ή πρόταση. Ένα αντικείμενο μπορεί να έχει πολλές ιδιότητες, αποθηκεύοντας πολλές πληροφορίες σχετικά με μια ενιαία έννοια. Μερικές φορές, όμως, πρέπει να παρακολουθείτε μια μεγάλη λίστα με πράγματα. Αυτές είναι οι τάξεις συλλογής που εισέρχονται.
Οι κλάσεις συλλογής στο C # είναι φοβερό, επειδή μπορούν να σας βοηθήσουν να διατηρήσετε μια λίστα αντικειμένων ή μια ομάδα κλειδιών και αξιών και να παρέχετε δωρεάν εργαλεία αναζήτησης, προβολής και γενικής συντήρησης. Αυτό είναι πολύ πιο εύκολο από το γράψιμο των δύο εκατοντάδων «ταξινομημένων πελατών με τη μέθοδο του επώνυμου» αυτού του μήνα.
Το C # έχει βασικές κατηγορίες συλλογής, γενικές κατηγορίες συλλογής και ταυτόχρονες κατηγορίες συλλογής. Αυτά τα τελευταία είναι για ασφαλείς λειτουργίες με νήματα σε περιβάλλον πολλαπλών επεξεργαστών. Όλες αυτές οι κατηγορίες συλλογής είναι χρήσιμες αν ξέρετε πού και πότε να τις χρησιμοποιήσετε.
Τακτικές συλλογές
Οι τακτικές συλλογές αποθηκεύουν τα αόρατα υλικά για εσάς. Εάν δεν ξέρετε ακριβώς τι πρόκειται να αποθηκεύσετε, οι τακτικές συλλογές είναι για εσάς. Τα περισσότερα από αυτά τα είδη αποθηκεύονται ως Object.
δηλώνεται αρχικά και το μέγεθος αυξάνεται ανάλογα με τις ανάγκες (δεν μειώθηκε).
συνδεδεμένα για την ταξινόμηση μιας ανάκτησης.
πράξεων επεξεργασίας προγράμματος.
Γενικές συλλογές
C # 2. 0 εισήγαγαν γενικές συλλογές. Οι γενικές συλλογές σάς επιτρέπουν να αποθηκεύετε δακτυλογραφημένες συλλογές αντικειμένων, όπως δηλώνονται κατά το χρόνο εκτέλεσης.
Κλάση | Περιγραφή |
---|---|
Λεξικό | Μόνο ένα HastTable, εκτός από την πληκτρολόγηση, έτσι δεν χρειάζεται να αποθηκεύετε
Object, Object. Το TKey και το TValue είναι τύποι, ώστε να μπορείτε να αποθηκεύσετε μια λίστα εάν θέλετε . |
Λίστα | Αυτός είναι ο νέος πίνακας. Είναι ένας πληκτρολογημένος κατάλογος αντικειμένων. Μέχρι , η πιο συνηθισμένη κλάση συλλογής που χρησιμοποιήθηκε. Είναι η προεπιλογή.
Αν χρειάζεστε μια λίστα ανθρώπων, είναι μια λίστα. |
Queue | Παρόμοια με την άτυπη Queue, αλλά, και καλά, πληκτρολογήσαμε! |
SortedList | Αυτό το τρομερό λεξικό εφαρμόζει το IComparable έτσι ώστε να μπορεί να ταξινομηθεί
. |
Στοίβα | Ακριβώς όπως και το unyped Stack, εκτός από την πληκτρολόγηση. |
Τρέχουσες κατηγορίες συλλογής
Τέλος, οι κλάσεις Concurrent εξασφαλίζουν ότι τα αντικείμενα που αποθηκεύετε σε μια λίστα είναι διαθέσιμα σε οποιοδήποτε χώρο μνήμης, ανεξάρτητα από τον επεξεργαστή.Είναι μεγαλύτερη υπόθεση από ό, τι νομίζετε.
Κλάση | Περιγραφή |
---|---|
BlockingCollection | Είναι μια κλάση ασφαλής για νήματα που θα εμποδίσει ένα νήμα
να τροποποιήσει ένα πεδίο που είναι προσβάσιμο από ένα άλλο νήμα. Λαμπρό πράγμα, πραγματικά. |
ConcurrentDictionary |
Μιλώντας για λαμπρό, αυτό το σύνολο ζευγών κλειδιού / τιμής μπορεί να είναι
προσπελάσιμο από πολλαπλά νήματα. |
ConcurrentQueue | Να θυμάστε ότι η στοίβα FIFO; Ναι. Αυτό είναι γενικό και νήμα
ασφαλές. |
ConcurrentStack | Οι ενορχηστρωμένες συλλογές είναι χρήσιμες. Είναι
ευεργετικά για τη μνήμη, για ένα πράγμα. Τέλος πάντων, αυτό είναι και το LIFO και το ασφαλές για τα νήματα. |