Rumah > pembangunan bahagian belakang > C++ > Cast() atau OfType() dalam LINQ: Bilakah Saya Perlu Menggunakan Yang Mana?

Cast() atau OfType() dalam LINQ: Bilakah Saya Perlu Menggunakan Yang Mana?

Susan Sarandon
Lepaskan: 2025-01-17 04:56:09
asal
309 orang telah melayarinya

Cast() or OfType() in LINQ: When Should I Use Which?

Perbezaan antara Cast() dan OfType() dalam LINQ: pemahaman mendalam

Dalam LINQ, apabila bekerja dengan koleksi yang mungkin mengandungi unsur jenis berbeza, anda mungkin perlu menukar keseluruhan koleksi kepada jenis tertentu. LINQ menyediakan dua kaedah untuk tujuan ini: Cast() dan OfType().

Kaedah Cast()

Cast() cuba menukar semua elemen dalam koleksi kepada jenis yang ditentukan. Jika mana-mana elemen tidak berjaya dihantar, InvalidCastException akan dilemparkan. Kaedah ini berguna apabila anda pasti bahawa semua elemen dalam koleksi boleh ditukar kepada jenis yang diperlukan.

Kaedah OfType()

Tidak seperti Cast(), OfType() hanya mengembalikan elemen dalam koleksi yang boleh dihantar dengan selamat kepada jenis yang ditentukan. Ia tidak cuba menukar semua elemen, jadi tiada pengecualian dilemparkan. Kaedah ini berguna apabila anda hanya mahu menapis elemen yang boleh ditukar.

Contoh penggunaan

Pertimbangkan kod berikut:

<code class="language-csharp">object[] objs = new object[] { "12345", 12 };</code>
Salin selepas log masuk

Jika anda cuba menggunakan Cast() untuk menukar tatasusunan ini kepada koleksi rentetan, anda akan menerima InvalidCastException kerana salah satu elemen ialah integer.

<code class="language-csharp">IEnumerable<string> someCollection = objs.Cast<string>();</code>
Salin selepas log masuk

Walau bagaimanapun, jika anda menggunakan OfType(), ia hanya akan mengembalikan elemen yang boleh ditukar dengan selamat kepada rentetan.

<code class="language-csharp">IEnumerable<string> someCollection = objs.OfType<string>();</code>
Salin selepas log masuk

Dalam kes ini, someCollection akan mengandungi hanya satu elemen: "12345".

Ringkasan

Cast() dan OfType() ialah dua kaedah LINQ yang mempunyai tujuan berbeza apabila bekerja dengan koleksi jenis campuran. Cast() cuba menghantar semua elemen, manakala OfType() hanya memilih elemen yang selamat untuk dihantar. Gunakan Cast() apabila anda pasti tentang jenis casting; gunakan OfType() apabila anda hanya mahu menapis elemen yang sah.

Atas ialah kandungan terperinci Cast() atau OfType() dalam LINQ: Bilakah Saya Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan