■ 객체 리스트를 특정 속성 값에 따라 정렬하는 방법을 보여준다. (속성 2개 이상 지정)
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
using System; using System.Collections.Generic; using System.Linq; #region 객체 리스트 특정 속성 값에 따라 정렬하기 (속성 2개 이상 지정) - SortList(sourceList, propertyNameArray) /// <summary> /// 객체 리스트 특정 속성 값에 따라 정렬하기 (속성 2개 이상 지정) /// </summary> /// <param name="sourceList">소스 리스트</param> /// <param name="propertyNameArray">속성명 배열</param> /// <returns>정렬 객체 리스트</returns> public List<object> SortList(List<object> sourceList, string[] propertyNameArray) { if(sourceList == null || sourceList.Count == 0) { return null; } if(propertyNameArray.Length < 1) { return null; } Type sourceType = sourceList[0].GetType(); var result = sourceList.OrderBy(p => sourceType.GetProperty(propertyNameArray[0]).GetValue(p, null)); foreach(string colunmName in propertyNameArray.Skip(1)) { result = result.ThenBy(p => sourceType.GetProperty(colunmName).GetValue(p, null)); // 또는 ThenByDescending } return result.ToList(); } #endregion |