Bagikan melalui


Cara menggunakan variabel dan array lokal yang ditik secara implisit dalam ekspresi kueri (Panduan Pemrograman C#)

Anda dapat menggunakan variabel lokal yang ditik secara implisit setiap kali Anda ingin pengkompilasi menentukan jenis variabel lokal. Anda harus menggunakan variabel lokal yang di ketik secara implisit untuk menyimpan jenis anonim, yang sering digunakan dalam ekspresi kueri. Contoh berikut mengilustrasikan penggunaan opsional dan diperlukan dari variabel lokal yang diketik secara implisit dalam kueri.

Variabel lokal yang diketik secara implisit dideklarasikan dengan menggunakan kata kunci kontekstual var . Untuk informasi selengkapnya, lihat Variabel Lokal yang Diketik secara Implisit dan Array yang Diketik secara Implisit.

Contoh

Contoh berikut menunjukkan skenario umum di mana var kata kunci diperlukan: ekspresi kueri yang menghasilkan urutan jenis anonim. Dalam skenario ini, variabel kueri dan variabel iterasi dalam pernyataan foreach harus ditentukan secara implisit dengan menggunakan var karena Anda tidak memiliki akses ke nama tipe untuk tipe anonim. Untuk informasi selengkapnya tentang jenis anonim, lihat Jenis Anonim.

private static void QueryNames(char firstLetter)
{
    // Create the query. Use of var is required because
    // the query produces a sequence of anonymous types:
    // System.Collections.Generic.IEnumerable<????>.
    var studentQuery =
        from student in students
        where student.FirstName[0] == firstLetter
        select new { student.FirstName, student.LastName };

    // Execute the query and display the results.
    foreach (var anonType in studentQuery)
    {
        Console.WriteLine("First = {0}, Last = {1}", anonType.FirstName, anonType.LastName);
    }
}

Contoh berikut menggunakan var kata kunci dalam situasi yang serupa, tetapi di mana penggunaannya var bersifat opsional. Karena student.LastName merupakan string, eksekusi kueri mengembalikan urutan string. Oleh karena itu, jenis queryId dapat dideklarasikan sebagai System.Collections.Generic.IEnumerable<string> alih-alih var. Kata kunci var digunakan untuk kenyamanan. Dalam contoh, variabel iterasi dalam foreach pernyataan secara eksplisit diketik sebagai string, tetapi dapat dideklarasikan dengan menggunakan var. Karena jenis variabel iterasi bukan jenis anonim, penggunaannya var adalah opsi, bukan persyaratan. Ingat, var itu sendiri bukan jenis, tetapi instruksi kepada pengkompilasi untuk menyimpulkan dan menetapkan jenisnya.

// Variable queryId could be declared by using
// System.Collections.Generic.IEnumerable<string>
// instead of var.
var queryId =
    from student in students
    where student.Id > 111
    select student.LastName;

// Variable str could be declared by using var instead of string.
foreach (string str in queryId)
{
    Console.WriteLine($"Last name: {str}");
}

Lihat juga