정기업데이트 내역 다운로드 받기 프로젝트를 하던 중
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 이다