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.
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 -
Ia digunakan untuk menapis elemen IEnumerable mengikut jenis yang ditentukan. Jika sumber yang dibekalkan adalah batal, kaedah ini membuang ArgumentNullException.
public static System.Collections.Generic.IEnumerable<TResult> OfType<TResult>(this System.Collections.IEnumerable source);
Gunakan teknik ini untuk mengisih elemen dalam koleksi dalam tertib menaik. Prosedur ini juga membuang ArgumentNullException jika sumber yang dibekalkan adalah batal.
public static System.Linq.IOrderedEnumerable OrderBy<TSource,TKey(thisSystem.Collections.Generic.IEnumerable<TSource> list, Func<TSource,TKey> Selector);
Mari kita memahami masalah ini melalui 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]
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]
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};
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>();
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);
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.
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); } } }
Sorted integer values are: 18 20 34 100
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!