Mendapatkan nilai maksimum daripada jenis penghitungan ialah tugas biasa yang dihadapi oleh pembangun. Ini diperlukan dalam senario di mana anda perlu mengesahkan input pengguna atau mengendalikan sumber tertentu berdasarkan nilai enum. C# menyediakan cara yang mudah untuk mencapai ini menggunakan kelas Enum dan sedikit LINQ.
Mari kita terokai penyelesaian yang menjadikan pengambilan nilai maksimum penghitungan semudah pai.
enum awam MyEnum
{
Pilihan1 = 1,
Pilihan2 = 2,
Pilihan3 = 3
}
...
public int GetMaxEnumValue()
{
kembalikan Enum.GetValues(typeof(MyEnum)).Cast().Max();
}
Sekeping kod pendek ini melakukan semua kerja untuk mendapatkan nilai tertinggi dalam enum. Tetapi bagaimana ia berfungsi?
Menyelami Kod
`Enum.GetValues(typeof(MyEnum))` ialah bahagian kritikal pertama yang perlu difahami. Kaedah .NET terbina dalam ini mengembalikan Array yang mengandungi nilai pemalar dalam penghitungan yang ditentukan. Jenis penghitungan dihantar sebagai parameter kepada kaedah menggunakan kata kunci `typeof`.
Sebaik sahaja kita mempunyai tatasusunan, kita perlu menghantarnya kepada integer. Ini dilakukan menggunakan .Cast() kaedah yang merupakan sebahagian daripada LINQ (Language Integrated Query). LINQ ialah satu set teknik dan kaedah dalam .NET yang membolehkan kami bekerja dengan data dengan cara yang lebih intuitif dan fleksibel.
Selepas menghantar nilai kepada integer, mendapatkan nilai maksimum adalah semudah memanggil kaedah .Max(), satu lagi alat hebat yang disediakan oleh LINQ. Kaedah ini mengembalikan nilai maksimum dalam koleksi nilai int.
Memanfaatkan Perpustakaan Enum dan LINQ
Kelas Enum ialah sebahagian daripada ruang nama Sistem dalam .NET dan menyediakan beberapa kaedah statik untuk bekerja dengan penghitungan. Ia adalah perpustakaan yang boleh digunakan apabila anda perlu melakukan sebarang operasi yang berkaitan dengan jenis enum.
Sebaliknya, LINQ, sebahagian daripada ruang nama System.Linq, ialah salah satu ciri C# yang paling berkuasa. Ia menyediakan pelbagai kaedah untuk mengendalikan koleksi dengan berkesan, seperti mendapatkan nilai maksimum, minimum atau purata, pengisihan dan penapisan data.
Lebih Lanjut