Rumah > pembangunan bahagian belakang > Tutorial C#.Net > Program C# untuk mencari integer daripada senarai objek dan menyusunnya menggunakan LINQ

Program C# untuk mencari integer daripada senarai objek dan menyusunnya menggunakan LINQ

PHPz
Lepaskan: 2023-09-07 18:57:12
ke hadapan
828 orang telah melayarinya

C# 程序从对象列表中查找整数并使用 LINQ 对它们进行排序

Pengenalan

Dalam artikel ini, kita akan belajar cara menulis program C# untuk mencari integer daripada senarai objek dan mengisihnya menggunakan LINQ. Mari kita berikan gambaran ringkas tentang bahasa tersebut. Bahasa pengaturcaraan C# kerap digunakan untuk membangunkan aplikasi desktop, web dan mudah alih. Pertanyaan Bersepadu Bahasa (kadangkala dipanggil LINQ) ialah salah satu kekuatan C#. 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. Ia menyediakan sintaks standard untuk pertanyaan data tanpa mengira sumber data. Memandangkan sintaks LINQ adalah serupa dengan SQL, pembangun boleh mempelajari dan menggunakannya dengan mudah.

Pernyataan Masalah

Dalam artikel ini, kami akan menunjukkan cara mencari integer daripada senarai objek dan mengisihnya menggunakan LINQ dalam C#. Gandaan integer mesti diperolehi daripada senarai objek dan kemudian ia mesti diisih. Oleh itu, kaedah OfType() boleh digunakan untuk operasi ini dan fungsi OrderBy() boleh digunakan untuk mengisih integer. Mari semak setiap satu daripadanya dan sintaksnya -

Kaedah OfType()

Ia digunakan untuk menapis elemen IEnumerable mengikut jenis yang ditentukan. Jika sumber yang dibekalkan adalah batal, kaedah ini membuang ArgumentNullException.

Tatabahasa

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

Kaedah OrderBy()

Gunakan teknik ini untuk mengisih elemen dalam koleksi dalam tertib menaik. Prosedur ini juga membuang ArgumentNullException jika sumber yang dibekalkan adalah batal.

Tatabahasa

public static System.Linq.IOrderedEnumerable
OrderBy<TSource,TKey(thisSystem.Collections.Generic.IEnumerable<TSource> list, Func<TSource,TKey> Selector); 
Salin selepas log masuk

Mari kita memahami masalah ini melalui contoh.

Contoh

Buat senarai dan tambah elemen padanya. Dalam contoh ini, kami mengambil objek daripada jenis data yang berbeza.

Masuk

["Tutpoints", 100, "LINQ", 18, “50”, 20, ‘A’, 34] 
Salin selepas log masuk

Untuk objek yang berbeza, kaedah OfType() dan OrderBy() akan mengisih dan menyusun nilai integer dalam senarai. Jadi output yang diberikan input ialah

Output

[18, 20, 34,100]
Salin selepas log masuk

Algoritma

Langkah 1 Buat senarai objek

Kami mula-mula membuat senarai objek yang terdiri daripada gabungan rentetan, integer dan aksara.

List<object> list = new List<object> { "Tutpoints", 100, "LINQ", 18, “50”, 20, ‘A’, 34}; 
Salin selepas log masuk

Langkah 2 Gunakan kaedah OfType() untuk mencari integer

Kaedah OfType() kemudiannya akan digunakan untuk menapis senarai supaya hanya nilai integer dikekalkan.

var integers = list.OfType<int>(); 
Salin selepas log masuk

Kaedah sambungan yang disediakan oleh LINQ dipanggil OfType(). Ia mengembalikan senarai entri yang ditapis. Dalam contoh ini, senarai ditapis untuk mengandungi hanya elemen jenis int. Kini hanya nilai integer dari senarai pertama muncul dalam pembolehubah integer.

Langkah 3 Gunakan OrderBy() untuk mengisih integer

Kita boleh menggunakan fungsi OrderBy() untuk mengisih jujukan nilai integer dalam tertib menaik.

var sortedIntegers = integers.OrderBy(x => x); 
Salin selepas log masuk

Satu lagi fungsi sambungan yang disediakan oleh LINQ ialah OrderBy(). Ia menyusun senarai elemen dalam tertib menaik berdasarkan kekunci yang diberikan. Dalam contoh ini, ungkapan lambda (x => x) digunakan untuk menentukan kunci yang menggunakan siri itu diisih. Hantar elemen jujukan (x) kepada ungkapan lambda, yang kemudiannya mengembalikan nilai yang akan menjadi kunci isihan.

Nilai integer dari senarai awal kini muncul dalam pembolehubah sortedIntegers, diisih dalam tertib menaik.

Langkah 4 Cetak integer yang diisih.

Akhir sekali, kita boleh menggunakan gelung foreach dan kaedah Console.WriteLine() untuk mencetak nilai integer yang diisih.

Ini adalah algoritma mudah yang baru kami baca. Sekarang mari kita lihat program C# lengkap yang menunjukkan cara mencari integer daripada senarai objek dan mengisihnya menggunakan LINQ.

Contoh

using System;
using System.Collections.Generic;
using System.Linq;
class Program {
   static void Main(string[] args) {
      List<object> list = new List<object> { "Tutpoints", 100, "LINQ", 18, "50", 20, 'A', 34 };
      var integers = list.OfType<int>();
      var sortedIntegers = integers.OrderBy(x => x);
      Console.WriteLine("Sorted integer values are:");
      foreach (int integer in sortedIntegers) {
         Console.WriteLine(integer);
      }
   }
} 
Salin selepas log masuk

Output

Sorted integer values are:
18
20
34
100
Salin selepas log masuk

Kesimpulan

Dalam artikel ini, kami menunjukkan kepada anda cara mencari integer daripada senarai objek dan mengisihnya menggunakan LINQ dalam C#. Selepas mengalih keluar semua nilai kecuali nilai integer daripada senarai menggunakan fungsi OfType(), kami mengisih integer menggunakan kaedah OrderBy(). Akhir sekali, kami menggunakan arahan cetak untuk memaparkan nilai integer yang diisih ke konsol. Kami telah belajar tentang algoritma dan melihat kodnya. Kami berharap artikel ini membantu anda meningkatkan pengetahuan dan pemahaman anda tentang topik ini.

Atas ialah kandungan terperinci Program C# untuk mencari integer daripada senarai objek dan menyusunnya 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