Bagikan melalui


Cara mengembalikan subset properti elemen dalam kueri (Panduan Pemrograman C#)

Gunakan jenis anonim dalam ekspresi kueri saat menemui kedua kondisi berikut:

  • Anda hanya ingin mengembalikan beberapa properti dari setiap elemen sumber.

  • Anda tidak perlu menyimpan hasil kueri di luar lingkup metode tempat kueri dijalankan.

Jika Anda hanya ingin mengembalikan satu properti atau bidang dari setiap elemen sumber, maka Anda hanya dapat menggunakan operator titik dalam select klausul. Misalnya, untuk mengembalikan hanya ID dari masing-masing student, tulislah select klausul sebagai berikut:

select student.ID;  

Contoh

Contoh berikut menunjukkan cara menggunakan jenis anonim untuk mengembalikan hanya satu subset properti dari setiap elemen sumber yang cocok dengan kondisi yang ditentukan.

private static void QueryByScore()
{
    // Create the query. var is required because
    // the query produces a sequence of anonymous types.
    var queryHighScores =
        from student in students
        where student.ExamScores[0] > 95
        select new { student.FirstName, student.LastName };

    // Execute the query.
    foreach (var obj in queryHighScores)
    {
        // The anonymous type's properties were not named. Therefore
        // they have the same names as the Student properties.
        Console.WriteLine(obj.FirstName + ", " + obj.LastName);
    }
}
/* Output:
Adams, Terry
Fakhouri, Fadi
Garcia, Cesar
Omelchenko, Svetlana
Zabokritski, Eugene
*/

Perhatikan bahwa jenis anonim menggunakan nama elemen sumber untuk propertinya jika tidak ada nama yang ditentukan. Untuk memberikan nama baru ke properti dalam jenis anonim, tulislah select pernyataan sebagai berikut:

select new { First = student.FirstName, Last = student.LastName };  

Jika Anda mencoba ini dalam contoh sebelumnya, maka pernyataan Console.WriteLine juga harus berubah:

Console.WriteLine(student.First + " " + student.Last);  

Mengompilasi Kode

Untuk menjalankan kode ini, salin dan tempel kelas ke aplikasi konsol C# dengan using direktif untuk System.Linq.

Lihat juga