Προγραμματισμός

Πώς να χρησιμοποιήσετε τις προβολές στο C #

Η προβολή είναι μια λειτουργία που μετατρέπει τα αποτελέσματα ενός ερωτήματος. Μπορείτε να χρησιμοποιήσετε την προβολή για να μετατρέψετε ένα αντικείμενο σε μια νέα φόρμα που έχει μόνο αυτές τις ιδιότητες που απαιτούνται στην εφαρμογή σας. Σε αυτό το άρθρο, θα δούμε πώς μπορούμε να εργαστούμε με προβολές στο C #.

Για να εργαστείτε με τα παραδείγματα κώδικα που παρέχονται σε αυτό το άρθρο, θα πρέπει να έχετε εγκαταστήσει το Visual Studio 2019 στο σύστημά σας. Εάν δεν έχετε ήδη αντίγραφο, μπορείτε να κατεβάσετε το Visual Studio 2019 εδώ.

Δημιουργήστε ένα έργο εφαρμογής κονσόλας στο Visual Studio

Πρώτα απ 'όλα, ας δημιουργήσουμε ένα έργο εφαρμογής .NET Core κονσόλας στο Visual Studio. Ας υποθέσουμε ότι το Visual Studio 2019 είναι εγκατεστημένο στο σύστημά σας, ακολουθήστε τα βήματα που περιγράφονται παρακάτω για να δημιουργήσετε ένα νέο έργο εφαρμογής .NET Core Console στο Visual Studio.

  1. Εκκινήστε το Visual Studio IDE.
  2. Κάντε κλικ στο "Δημιουργία νέου έργου".
  3. Στο παράθυρο "Δημιουργία νέου έργου", επιλέξτε "Εφαρμογή κονσόλας (.NET Core)" από τη λίστα των προτύπων που εμφανίζονται.
  4. Κάντε κλικ στο Επόμενο.
  5. Στο παράθυρο "Διαμόρφωση του νέου έργου" που εμφανίζεται στη συνέχεια, καθορίστε το όνομα και την τοποθεσία για το νέο έργο.
  6. Κάντε κλικ στο Δημιουργία.
  7. Αυτό θα δημιουργήσει ένα νέο έργο εφαρμογής .NET Core κονσόλας στο Visual Studio 2019. Θα χρησιμοποιήσουμε αυτό το έργο στις επόμενες ενότητες αυτού του άρθρου.

Τι είναι η προβολή στο C #;

Η προβολή αναφέρεται στην πράξη του μετασχηματισμού ενός αντικειμένου σε μια νέα μορφή έτσι ώστε το νέο αντικείμενο να περιέχει μόνο τις ιδιότητες που θα χρησιμοποιηθούν. Το Language Integrated Query (LINQ) παρέχει υποστήριξη για δύο τυπικούς τελεστές προβολής ερωτημάτων, Select και SelectMany.

Μπορείτε να χρησιμοποιήσετε τους τελεστές Select and SelectMany για να προβάλλετε μια μεμονωμένη ιδιότητα ή να προβάλλετε τα αποτελέσματα ενός ερωτήματος ή να προβάλλετε πολλές ιδιότητες από μια πηγή δεδομένων σε έναν ανώνυμο τύπο. Μπορείτε ακόμη και να εκτελέσετε υπολογισμούς, φιλτράρισμα ή άλλες λειτουργίες σε μια προβολή, όπως απαιτείται.

Στις ενότητες που ακολουθούν θα εξετάσουμε πώς μπορούμε να συνεργαστούμε με αυτούς τους χειριστές στο C #.

Έργο χρησιμοποιώντας τον τελεστή Select στο C #

Γράψτε τον ακόλουθο κώδικα μέσα στο αρχείο Program.cs.

δημόσια τάξη Συγγραφέας

{

δημόσιο int Id {get; σειρά; }

δημόσια συμβολοσειρά FirstName {get; σειρά; }

δημόσια συμβολοσειρά LastName {get; σειρά; }

δημόσια συμβολοσειρά Διεύθυνση {get; σειρά; }

δημόσιος συγγραφέας (int id, string firstName,

string LastName, διεύθυνση συμβολοσειράς)

    {

αυτό. Id = id;

αυτό. FirstName = firstName;

this.LastName = επώνυμο;

αυτό. Διεύθυνση = διεύθυνση;

    }

}

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να επωφεληθείτε από τον τελεστή Select για να ζητήσετε δεδομένα.

var author = νέα λίστα

{

νέος συγγραφέας (1, "Joydip", "Kanjilal", "Hyderabad, INDIA"),

νέος συγγραφέας (2, "Anand", "Naraswamy", "Cochin, INDIA"),

νέος συγγραφέας (3, "Steve", "Smith", "Ohio, USA"),

νέος συγγραφέας (4, "Uday", "Denduluri", "London, UK")

};

foreach (όνομα var στους συγγραφείς. Επιλέξτε (e => e.FirstName))

{

Console.WriteLine (όνομα);

}

Όταν εκτελείτε το απόσπασμα κώδικα παραπάνω, τα πρώτα ονόματα όλων των συγγραφέων θα εμφανίζονται στο παράθυρο της κονσόλας.

Έργο σε ανώνυμους τύπους στο C #

Μπορείτε να προβάλλετε περισσότερες από μία ιδιότητες από μια πηγή δεδομένων, μπορείτε ακόμη και να προβάλλετε έναν ανώνυμο τύπο. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να προβάλλετε πολλές ιδιότητες σε ανώνυμο τύπο.

var data = author. Επιλέξτε (e => νέο {e.FirstName, e.LastName});

Έργο χρησιμοποιώντας τον τελεστή SelectMany στο C #

Μπορείτε να εκμεταλλευτείτε τον τελεστή SelectMany για να ζητήσετε δεδομένα από μια συλλογή που εφαρμόζει τη διεπαφή IEnumerable. Μπορείτε να χρησιμοποιήσετε τον τελεστή SelectMany όταν θέλετε να αναζητήσετε δεδομένα από διάφορες συλλογές και έργα ή να τα ισιώσετε σε μία ακολουθία.

Σημειώστε ότι τόσο το Select όσο και το SelectMany παράγουν ένα αποτέλεσμα από τις τιμές προέλευσης. Ενώ το Select παράγει ένα μοναδικό αποτέλεσμα από κάθε τιμή πηγής, το SelectMany παράγει μια συνενωμένη υπο-συλλογή από κάθε τιμή πηγής.

Ας συμπεριλάβουμε τώρα μια επιπλέον ιδιότητα στην τάξη Συγγραφέας που ονομάζεται Θέματα Αυτή η ιδιότητα είναι μια λίστα συμβολοσειρών που περιέχουν τα ονόματα των θεμάτων για τα οποία γράφει ο συγγραφέας.

δημόσια τάξη Συγγραφέας

    {

δημόσιο int Id {get; σειρά; }

δημόσια συμβολοσειρά FirstName {get; σειρά; }

δημόσια συμβολοσειρά LastName {get; σειρά; }

δημόσια συμβολοσειρά Διεύθυνση {get; σειρά; }

δημόσια θέματα λίστας {get; σειρά; }

δημόσιος συγγραφέας (int id, string firstName, string lastName,

διεύθυνση συμβολοσειράς, θέματα λίστας)

        {

αυτό. Id = id;

αυτό. FirstName = firstName;

this.LastName = επώνυμο;

αυτό. Διεύθυνση = διεύθυνση;

αυτό. Θέματα = θέματα;

        }

    }

Μπορείτε να χρησιμοποιήσετε το ακόλουθο απόσπασμα κώδικα για να δημιουργήσετε μια λίστα συγγραφέων.

var author = νέα λίστα

{

νέος συγγραφέας (1, "Joydip", "Kanjilal", "Hyderabad, INDIA",

νέα λίστα {"C #", "F #"}),

νέος συγγραφέας (2, "Anand", "Naraswamy", "Cochin, INDIA",

νέα λίστα {"C #", "VB.NET"}),

νέος συγγραφέας (3, "Steve", "Smith", "Ohio, USA",

νέα λίστα {"C #", "C ++"}),

νέος συγγραφέας (4, "Uday", "Denduluri", "London, UK",

νέα λίστα {"C #", "VB.NET"}),

νέος συγγραφέας (5, "Jane", "Barlow", "London, UK",

νέα λίστα {"C #", "C ++"})

 };

Και μπορείτε να χρησιμοποιήσετε το παρακάτω απόσπασμα κώδικα για να ανακτήσετε τα ονόματα των γλωσσών προγραμματισμού για τους οποίους γράφουν βιβλία.

var data = author.SelectMany (a => a.Subjects). Διάκριση ();

foreach (var θέμα στα δεδομένα)

{

Console.WriteLine (θέμα);

}

Χρησιμοποιήστε τον τελεστή Where για να φιλτράρετε τα δεδομένα αποτελεσμάτων στο C #

Μπορείτε να εφαρμόσετε τον τελεστή Where μετά το SelectMany για να φιλτράρετε το σύνολο αποτελεσμάτων. Το ακόλουθο απόσπασμα κώδικα κατά την εκτέλεση εμφανίζει το Όνομα και το Θέμα του συγγραφέα του οποίου το Όνομα ξεκινά με τον χαρακτήρα "J" και κατοικεί στο Ηνωμένο Βασίλειο.

var data = συγγραφείς

. Πού (a => a.Address.IndexOf ("UK")> = 0)

.Επιλέξτε Πολλές (a => a.Subjects, (a, Subject) => νέο {a.FirstName, Subject})

. Πού (n => n.FirstName.StartsWith ("J"));

foreach (var συγγραφέας στα δεδομένα)

{

Console.WriteLine (συγγραφέας);

}

Όταν εκτελείτε το παραπάνω απόσπασμα κώδικα, θα πρέπει να δείτε την έξοδο στο παράθυρο της κονσόλας, όπως φαίνεται στην παρακάτω εικόνα της οθόνης.

Οι προβολές μπορούν να χρησιμοποιηθούν όταν εργάζεστε με EF Core, οπότε μπορείτε να ανακτήσετε μόνο τις στήλες από την υποκείμενη βάση δεδομένων που χρειάζεστε για την εφαρμογή σας. Σε ένα μελλοντικό άρθρο εδώ, θα συζητήσω ορισμένες προηγμένες λειτουργίες που χρησιμοποιούν προβολές όπως προβολές one-to-many, φιλτράρισμα αποτελεσμάτων και παραγγελία.