Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
PHPzke hadapan
2023-09-03 16:37:021213semak imbas

使用 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); 
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>) 

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}

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

Output: {-2.71, -4.2}

Mari kita fahami

Algoritma

Langkah 1 - Buat senarai objek

List<object> list = new List<object>() 

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>(); 

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); 

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

foreach (var d in doubles)
{
   Console.WriteLine(d);
}

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);
      }
   }
}

Output

Output kod di atas ialah -

-2.71 
-4.2 

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam