C# LIST<T> 다양한 활용 | Cshap List Method | JMON

JMON·2021년 3월 23일
0
post-thumbnail

📄 설명

📣 목차

  • 검색 : 리스트의 특정 항목 검색
  • 정렬 : 특정 데이터 기준 정렬
  • 무작위 섞기
  • 중복 제거 : 중복된 데이터 제거

📄 사용방법

📣 예시 데이터

...
parts.Add(new Part() { PartName = "crank arm", PartId = 1234 });
parts.Add(new Part() { PartName = "chain ring", PartId = 1334 });
parts.Add(new Part() { PartName = "regular seat", PartId = 1434 });
parts.Add(new Part() { PartName = "banana seat", PartId = 1444 });
parts.Add(new Part() { PartName = "cassette", PartId = 1534 });
parts.Add(new Part() { PartName = "shift lever", PartId = 1634 });

📣 검색

✍ 코드

// 데이터 내부 값 찾기
int get_part_id = parts.select(x => x.PartName == "cassette").partID;
// 데이터 찾기
Part get_part = parts.select(x => x.PartName == "cassette");
// 포함 여부
Part get_part = parts.Find(x => x.PartName.Contains("seat"));
// 포함 여부 - 값 일치
bool exist_part = parts.Exists(x => x.PartId == 1444);
// 포함 여부 - 값 포함
bool contains_part = parts.Contains(new Part { PartId = 1734, PartName = "" });

📣 정렬

✍ 코드

// partName 오름차순
List<Part> orderby = parts.OrderBy(x => x.partName).ToList();
// PartID 내림차순
List<Part> orderby = parts.OrderByDescending(x => x.PartID).ToList();
// partName 순 이후 PartID 순
List<Part> orderby = parts.OrderBy(x => x.partName).ThenBy(x => x.PartID).ToList();
// 반환값 없이 정렬
parts.Sort((x1, x2) => x1.partName.CompareTo(x2.partName));
parts.Sort((x1, x2) => x2.partName.CompareTo(x1.partName));

📣 무작위 섞기

✍ 코드

Random rng = new Random();
int n = parts.Count;
while(n > 1)
{
	n--;
	int k = rng.Next(n + 1);
	T value = parts[k];
	parts[k] = parts[n];
	parts[n] = value;
}

📣 무작위 섞기

✍ 코드

List<Part> distinct_items = parts.Distinct().ToList();

📄 참고자료

🎈 Document : https://docs.microsoft.com/ko-kr/dotnet/api/system.collections.generic.list-1?view=net-5.0

profile
Fullstack Developer

0개의 댓글