목록에서 중복된 내용을 제거하는 다양한 방법을 소개 합니다.
8개의 좋아요
코딩테스트에 재법 중복을 제거해야 하는 경우가 많아서
그럴때 마다 딕셔너리에 넣었다 빼는 방식을 사용했었는데
역시나 딕셔너리가 빠르긴 하네요! ㅎㅎ
좋은 글 잘 읽었습니다!
2개의 좋아요
요약하면,
public List<T> UsingEmptyListWithContains()
{
var listWithoutDuplicates = new List<T>();
foreach (T item in ListWithDuplicates)
{
if (!listWithoutDuplicates.Contains(item))
{
listWithoutDuplicates.Add(item);
}
}
return listWithoutDuplicates;
}
이게 가장 빠르다는 말이군요.
반복문돌리면서 일일히 Contains를 호출하는게 가장 빠를 줄이야…
public List<T> UsingDictionary()
{
var dic = new Dictionary<T, int>();
foreach (var s in ListWithDuplicates)
{
dic.TryAdd(s, 1);
}
var distinctList = dic.Keys.ToList();
return distinctList;
}
이게 두번째로 빠르고…
물론 일반적으로 중복제거할 때 중복 아이템 중 디테일하게 어떤 조건을 필터링해서 삭제할지는 커스텀하게 구현해야겠지만 키값을 두고 조건없이 제거하는데에 있어서는 최고의 꿀팁인 것 같습니다!!
감사드립니다…!!!
3개의 좋아요