Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีใช้ order by, group by ใน c #?


Order by ใช้เรียงลำดับอาร์เรย์จากน้อยไปมากหรือจากมากไปหาน้อย

ตัวดำเนินการ GroupBy อยู่ในหมวดตัวดำเนินการจัดกลุ่ม โอเปอเรเตอร์นี้ใช้ลำดับรายการแบบเรียบๆ จัดระเบียบลำดับนั้นออกเป็นกลุ่ม (IGrouping) ตามคีย์เฉพาะและกลุ่มส่งคืนของลำดับ

ตัวอย่าง

คลาส ElectronicGoods { รหัส int สาธารณะ { รับ; ชุด; } ชื่อสตริงสาธารณะ { รับ; ชุด; } หมวดหมู่สตริงสาธารณะ { รับ; ชุด; } รายการคงที่สาธารณะ  GetElectronicItems () { ส่งคืนรายการใหม่  () { สินค้าอิเล็กทรอนิกส์ใหม่ { Id =1, Name ="Mobile", Category ="Phone"}, ElectronicGoods ใหม่ { Id =2, Name =" LandLine", Category ="Phone"}, ElectronicGoods ใหม่ { Id =3, Name ="Television", Category ="TV"}, ElectronicGoods ใหม่ { Id =4, Name ="Grinder", Category ="Food"}, สินค้าอิเล็กทรอนิกส์ใหม่ { Id =5, Name ="Mixer", Category ="Food"}, }; }}คลาสโปรแกรม { static void Main() { //Group by var res=ElectronicGoods.GetElectronicItems().GroupBy(x => x.Category).Select(x => new { Key =x.Key, electronicGoods =x .OrderBy(c => c.Name) }); foreach (กลุ่ม var เป็น res) { Console.WriteLine("{0} - {1}", group.Key, group.electronicGoods.Count()); Console.WriteLine("----------"); foreach (var electronicGoods ใน group.electronicGoods) { Console.WriteLine (electronicGoods.Name + "\t" + electronicGoods.Category); } Console.WriteLine(); Console.WriteLine(); } Console.ReadKey(); }}

ผลลัพธ์

โทรศัพท์ - 2---------- โทรศัพท์พื้นฐานสำหรับโทรศัพท์เคลื่อนที่ TV - 1---------- โทรทัศน์ TVFood - 2---------- เครื่องบดอาหารเครื่องผสมอาหาร 

สั่งซื้อโดย

คลาส ElectronicGoods { รหัส int สาธารณะ { รับ; ชุด; } ชื่อสตริงสาธารณะ { รับ; ชุด; } หมวดหมู่สตริงสาธารณะ { รับ; ชุด; } รายการคงที่สาธารณะ  GetElectronicItems () { ส่งคืนรายการใหม่  () { สินค้าอิเล็กทรอนิกส์ใหม่ { Id =1, Name ="Mobile", Category ="Phone"}, ElectronicGoods ใหม่ { Id =2, Name =" LandLine", Category ="Phone"}, ElectronicGoods ใหม่ { Id =3, Name ="Television", Category ="TV"}, ElectronicGoods ใหม่ { Id =4, Name ="Grinder", Category ="Food"}, สินค้าอิเล็กทรอนิกส์ใหม่ { Id =5, Name ="Mixer", Category ="Food"}, }; }}คลาสโปรแกรม { static void Main() { //Order by var res =ElectronicGoods.GetElectronicItems().OrderBy(x => x.Category); foreach (รายการ var เป็น res) { Console.WriteLine (items.Name + "\t" + items.Category); } Console.ReadKey(); }}

ผลลัพธ์

เครื่องบดอาหาร เครื่องผสมอาหาร โทรศัพท์เคลื่อนที่ โทรศัพท์ทางไกล โทรทัศน์ โทรทัศน์