Rumah > pembangunan bahagian belakang > Tutorial C#.Net > Program C# untuk mencari nombor berganda negatif daripada senarai objek menggunakan LINQ

Program C# untuk mencari nombor berganda negatif daripada senarai objek menggunakan LINQ

PHPz
Lepaskan: 2023-09-03 16:37:02
ke hadapan
1250 orang telah melayarinya

使用 LINQ 从对象列表中查找负双精度数的 C# 程序

Pengenalan

Dalam artikel ini, kita akan belajar cara menulis program C# untuk mencari nombor genap negatif daripada senarai objek menggunakan LINQ.

Mari berikan gambaran ringkas tentang bahasa tersebut. Bahasa pengaturcaraan C# kerap digunakan untuk membangunkan aplikasi desktop, web dan mudah alih. Memproses sejumlah besar data boleh menjadi sukar menggunakan mana-mana bahasa pengaturcaraan. Mencari titik data yang memenuhi set keperluan tertentu atau menapis nilai tertentu adalah aktiviti biasa apabila bekerja dengan data. Ciri Pertanyaan Bersepadu Bahasa (LINQ) C# boleh digunakan untuk memudahkan dan meningkatkan pemprosesan data. Pembangun boleh menanyakan data dengan cepat daripada pelbagai sumber, termasuk tatasusunan, koleksi dan pangkalan data. Ia membolehkan pembangun menggunakan sintaks yang setara dengan SQL (Bahasa Pertanyaan Berstruktur) dan menyokong manipulasi dan pengisihan data yang mudah. Memandangkan sintaks LINQ adalah serupa dengan SQL, pembangun boleh mempelajari dan menggunakannya dengan mudah.

Pernyataan Masalah

Dalam artikel ini, kami akan menunjukkan cara mencari nombor berganda negatif daripada senarai objek menggunakan LINQ. Untuk mencari nombor berganda negatif daripada senarai ini menggunakan LINQ, kita perlu melakukan langkah berikut -

  • Tapis nilai pendua dari senarai.

  • Tapis nilai berganda negatif daripada senarai.

Kita boleh mencapai ini dengan menggabungkan fungsi Where() dengan kaedah OfType(). Mari perkenalkan mereka satu persatu dan sintaks mereka -

OfType()

diterjemahkan sebagai:

OfType()

Kaedah

OfType() digunakan untuk menapis elemen IEnumerable mengikut jenis yang diberikan. Dalam erti kata lain, kaedah ini digunakan untuk menapis senarai atau sumber urutan berdasarkan sama ada ia mempunyai keupayaan untuk menukar koleksi item kepada jenis tertentu. Jika sumber yang dibekalkan adalah batal, pengecualian ArgumentNullException dilemparkan.

tatabahasa

public static System.Collections.Generic.IEnumerable<TResult> OfType<TResult>(this System.Collections.IEnumerable source); 
Salin selepas log masuk
Terjemahan

Where()

ialah:

Where()

Gunakan kaedah Where() untuk menapis nilai berdasarkan fungsi predikat. Ia juga boleh dikatakan bahawa ia mengembalikan nilai dalam urutan atau senarai berdasarkan syarat atau keperluan tertentu.

tatabahasa

Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) 
Salin selepas log masuk

Mari kita buat senarai yang mengandungi objek jenis data yang berbeza.

Input List: { 3.14, -2.71, "hello", 0, “-7.5”, "world", -4.2, ‘a’, -3}
Salin selepas log masuk

Kami telah mendapat senarai elemen dengan jenis data yang berbeza. Keluaran kini hanya akan mengandungi dua kali ganda negatif.

Output: {-2.71, -4.2}
Salin selepas log masuk

Mari kita fahami

Algoritma

Langkah 1 - Buat senarai objek

List<object> list = new List<object>() 
Salin selepas log masuk

Langkah 2 - Pilih nilai berganda daripada senarai.

Kami boleh menggunakan kaedah OfType() LINQ untuk mengalih keluar nilai berganda daripada senarai. Selepas menapis koleksi, fungsi ini hanya mengembalikan elemen jenis "double" yang disediakan. Dalam kes kami, kami ingin mengalih keluar hanya nilai berganda senarai. Begini cara kami menggunakan strategi ini -

var doubles = list.OfType<double>(); 
Salin selepas log masuk

Langkah 3 - Daripada nilai berganda yang dipilih dalam senarai, pilih nilai berganda negatif. Penapis mesti digunakan untuk menapis nilai berganda negatif daripada koleksi. Ini boleh dicapai menggunakan kaedah LINQ Where(). Kaedah ini, selepas menggunakan penapis pada koleksi, hanya mengembalikan elemen yang sepadan dengan penapis. Dalam kes ini, kami hanya mahu menapis nilai berganda negatif dalam koleksi. Inilah cara untuk menggunakan teknik ini.

var negativeDoubles = doubles.Where(d => d < 0); 
Salin selepas log masuk

Langkah 4 - Akhir sekali, cetak double negatif menggunakan gelung foreach.

foreach (var d in doubles)
{
   Console.WriteLine(d);
}
Salin selepas log masuk

Ini adalah langkah mudah untuk mendapatkan nombor negatif daripada senarai. Mari kita lihat kodnya.

Contoh

using System;
using System.Collections.Generic;
using System.Linq;
class Program {
   static void Main(string[] args) {
      List<object> list = new List<object> {
         -2,3.14, -2.71, "hello", 0,"-7.5" , "world", -4.2
      };
      var doubles = list.OfType<double>().Where(d => d < 0);
      foreach (var d in doubles) {
         Console.WriteLine(d);
      }
   }
}
Salin selepas log masuk

Output

Output kod di atas ialah -

-2.71 
-4.2 
Salin selepas log masuk

Nota − Anda mungkin tertanya-tanya mengapa -2 dan -7.5 tidak disebut di sini. Ini kerana -2 ialah nombor negatif, tetapi bukan dua kali ganda. Dan -7.5 ditulis sebagai "-7.5", yang dianggap sebagai rentetan.

KESIMPULAN

Dalam artikel ini, kami menunjukkan cara menggunakan LINQ dalam C# untuk mencari nombor berganda negatif daripada senarai objek. Kami menggunakan dua kaedah Where() dan OfType() untuk menulis kod. Kami membincangkan secara ringkas kaedah Where() dan OfType(). Penyataan masalah dijelaskan dengan contoh. Selepas kita membincangkan algoritma. Akhirnya, kod dan output ditunjukkan. Kami berharap artikel ini membantu anda meningkatkan pengetahuan dan pemahaman anda tentang topik ini.

Atas ialah kandungan terperinci Program C# untuk mencari nombor berganda negatif daripada senarai objek menggunakan LINQ. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan