정기업데이트 내역 다운로드 받기 프로젝트를 하던 중

 

A, B, C 순서대로 텍스트를 정리해야 하는데

 

조회되는 순서대로 어레이에 추가 되어 오름차순이 아닌, 텍스트가 뒤죽박죽 섞여 버린다.

 

JArray에 이미 항목이 들어있고, 이 항목을 오름차순 하는 방법을 찾아보던 중,

 

JArray.OrderBy 를 쓰면 오름차순이 된다는 걸 알았다.

 

사용방법 : 

1
JArray 오름차순정렬될어레이 = new JArray(기존어레이.OrderBy(obj => (string)obj["정렬될키"]));
cs

이렇게 어레이.OrderBy 를 쓰면 된다.

 

obj 는 사용자 지정 변수이며 obj["정렬될키"] 는 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
       {
           "key1""value1",
           "key2""value2"
       },
       {
           "key1""value1",
           "key2""value2"
       },
       {
           "key1""value1",
           "key2""value2"
       }
]
cs

 

이렇게 JArray 안 JObject 가 여러개 있고, Object 안에 여러개의 Key 와 Value 가 있을 때

 

정렬될 키가 key1이면 key1값 기준으로 정렬한다는 것이다.

 

Object 내용이 value1 만 바뀌는 것이 아니라 Object 통으로 바뀌므로 다른 value 는 신경 안써도 된다.

 

예시)

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
       {
           "key1""A.에이입니다.",
           "key2""AAA"
       },
       {
           "key1""C.씨입니다.",
           "key2""CCC"
       },
       {
           "key1""B.비입니다.",
           "key2""BBB"
       }
]
cs

 

해당 어레이를 

1
new JArray(기존어레이.OrderBy(obj => (string)obj["key1"]));
cs

 

이렇게 한다고 했을때,

 

바뀐 어레이는 이렇게 된다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
       {
           "key1""A.에이입니다.",
           "key2""AAA"
       },
       {
           "key1""B.비입니다.",
           "key2""BBB"
       },
       {
           "key1""C.씨입니다.",
           "key2""CCC"
       }
]
cs

 

반대는 OrderByDescending 이다 

+ Recent posts