C# List - 리스트 생성자, 속성, 메서드 속도 및 성능

반응형

빠르게 원하는 키워드를 찾고싶으면 "Ctrl + F"

생성자

// O(1)
public List();
public List(int capacity);

// O(n)
public List(IEnumerable<T> collection);

속성

// O(1)
public int Capacity { get; }
public int Count { get; }
public T this[int index] { get; set; }

// O(value)
public int Capacity { set; }

메서드

추가

// O(1), Capacity를 더 늘려야 하는경우 O(Count)
public void Add(T item);

// O(collection.Count), Capacity를 더 늘려야 하는경우 O(Count + collection.Count)
public void AddRange(IEnumerable<T> collection);

// O(Count)
public void Insert(int index, T item);

// O(Count*collection.Count)
public void InsertRange(int index, IEnumerable<T> collection);

삭제

// O(Count)
public bool Remove(T item);
public int RemoveAll(Predicate<T> match);
public void RemoveRange(int index, int count);
public void Clear();
public void TrimExcess();

// O(index-Count)
public void RemoveAt(int index);

탐색

// O(Count)
public T? Find(Predicate<T> match);
public List<T> FindAll(Predicate<T> match);
public int FindIndex(Predicate<T> match);
public int FindIndex(int startIndex, int count, Predicate<T> match);
public T? FindLast(Predicate<T> match);
public int FindLastIndex(Predicate<T> match);
public int FindLastIndex(int startIndex, int count, Predicate<T> match);
public int IndexOf(T item);
public int IndexOf(T item, int index);
public int IndexOf(T item, int index, int count);
public int LastIndexOf(T item);
public int LastIndexOf(T item, int index);
public int LastIndexOf(T item, int index, int count);

// O(Count-startIndex)
public int FindIndex(int startIndex, Predicate<T> match);
public int FindLastIndex(int startIndex, Predicate<T> match);

// O(log Count)
public int BinarySearch(T item);

정렬

// O(Count log Count)
public void Sort();
public void Sort(IComparer<T>? comparer);
public void Sort(Comparison<T> comparison);
public void Sort(int index, int count, IComparer<T>? comparer);

기타

// O(1)
public System.Collections.ObjectModel.ReadOnlyCollection<T> AsReadOnly ();
public List<T>.Enumerator GetEnumerator ();

// O(Count)
public void CopyTo (T[] array, int arrayIndex);
public void CopyTo (int index, T[] array, int arrayIndex, int count);
public void CopyTo (T[] array);
public bool Exists (Predicate<T> match);
public void ForEach (Action<T> action);
public List<T> GetRange (int index, int count);
public void Reverse ();
public void Reverse (int index, int count);
public T[] ToArray ();
public bool TrueForAll (Predicate<T> match);
반응형

'프로그래밍 > C#, Unity' 카테고리의 다른 글

C# Hello world  (0) 2022.05.10
C# 문자열 보간 $ (string interpolation)  (0) 2021.09.08