2024. 3. 19. 01:48
Unity/C#
ClassList to Dictionary
아래의 경우에는 중복되는 userCode의 경우 price를 전부 병합하여 생성한다
왜냐면 Dictionary는 동일키생성을 허용하지 않기 때문이다
v1
더보기
var dictionary = classList.GroupBy(x => x.userCode).ToDictionary(x=>x.First().userCode, x=>x.Sum(x=>x.price));
v2
var dictionary = groups.ToDictionary(x => x.Key, x => x.ToList());
Dictionary Sort
//오름차순 정렬
dictionary=dictionary.OrderBy(x => x.Value).ToDictionary(x=>x.Key, x => x.Value); //오름차순 정렬
//내림차순 정렬
dictionary=dictionary.OrderByDescending(x => x.Value).ToDictionary(x=>x.Key, x => x.Value); //내림차순 정렬
슬라이스
{
//슬라이스(길이만큼 자르기)
var length = 3;
dictionary = dictionary.Take(length).ToDictionary(x => x.Key, x => x.Value);
}
중복제거
단 Dictionary는 원래 중복 Key를 허용하지 않기 때문에 Value만 가능하다
dictionary = dictionary.GroupBy(x => x.Value).Select(x => x.First()).ToDictionary(x => x.Key, x => x.Value); //중복제거
FindIndex
순위를 매길때 사용했다
var rank = dictionary.Keys.ToList().FindIndex(x => x == id);
Insert
중간에 넣기 전에 동일키를 지우고 넣는다
var item = dictionary.ElementAt(index);
dictionary.Remove(item.Key);
var list = dictionary.ToList();
list.Insert(length - 1, item);
dictionary = list.ToDictionary(x=>x.Key, x => x.Value);
'Unity > C#' 카테고리의 다른 글
AutomaticShadowDistance (0) | 2024.04.18 |
---|---|
자주 쓰는 DateTime 코드 모음 (0) | 2023.12.19 |
Path 연산 (0) | 2023.09.09 |