Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 order by, group by를 사용하는 방법은 무엇입니까?

<시간/>

Order by는 배열을 오름차순 또는 내림차순으로 정렬하는 데 사용됩니다.

GroupBy 연산자는 그룹화 연산자 범주에 속합니다. 이 연산자는 항목의 단순 시퀀스를 가져와서 특정 키를 기반으로 해당 시퀀스를 그룹(IGrouping)으로 구성하고 시퀀스의 그룹을 반환합니다.

예시

클래스 ElectronicGoods { public int Id { get; 세트; } 공개 문자열 이름 { get; 세트; } 공개 문자열 카테고리 { get; 세트; } public static List GetElectronicItems() { return new List() { new ElectronicGoods { Id =1, Name ="Mobile", Category ="Phone"}, new ElectronicGoods { Id =2, Name =" LandLine", Category ="Phone"}, new ElectronicGoods { Id =3, Name ="Television", Category ="TV"}, new ElectronicGoods { Id =4, Name ="Grinder", Category ="Food"}, 새로운 ElectronicGoods { ID =5, 이름 ="믹서", 범주 ="식품"}, }; }}class Program { static void Main() { //변수별 그룹화 res=ElectronicGoods.GetElectronicItems().GroupBy(x => x.Category).Select(x => new { Key =x.Key, electronicGoods =x .OrderBy(c => c.이름) }); foreach(res의 var 그룹) { Console.WriteLine("{0} - {1}", group.Key, group.electronicGoods.Count()); Console.WriteLine("----------"); foreach (group.electronicGoods의 var electronicGoods) { Console.WriteLine(electronicGoods.Name + "\t" + electronicGoods.Category); } Console.WriteLine(); Console.WriteLine(); } 콘솔.ReadKey(); }}

출력

전화 - 2----------유선 전화휴대전화TV - 1----------텔레비전 TV식품 - 2----------식품 분쇄기 식품 

주문 기준

클래스 ElectronicGoods { public int Id { get; 세트; } 공개 문자열 이름 { get; 세트; } 공개 문자열 카테고리 { get; 세트; } public static List GetElectronicItems() { return new List() { new ElectronicGoods { Id =1, Name ="Mobile", Category ="Phone"}, new ElectronicGoods { Id =2, Name =" LandLine", Category ="Phone"}, new ElectronicGoods { Id =3, Name ="Television", Category ="TV"}, new ElectronicGoods { Id =4, Name ="Grinder", Category ="Food"}, 새로운 ElectronicGoods { ID =5, 이름 ="믹서", 범주 ="식품"}, }; }}class Program { static void Main() { //주문 기준 var res =ElectronicGoods.GetElectronicItems().OrderBy(x => x.Category); foreach(해상도의 항목 var) { Console.WriteLine(items.Name + "\t" + items.Category); } 콘솔.ReadKey(); }}

출력

그라인더 FoodMixer FoodMobile PhoneLandLine PhoneTelevision TV