리스트형을 정렬하기 위해서 list.Sort()를 사용하면 소트 할 수 있다.
private void Start() { List<string> list = new List<string>() { "Unreal", "Unity", "Lumberyard", "Houndini", "Source", "Vision", "Crytek", "PhyX", "FMOD", "SpeedTree", "Frostbite" }; list.Sort(); }
IComparer은 클래스에서 상속받아 사용하는 형식으로 특정 클래스에 대한 비교 연산 행위자를 구현할 때 사용한다.
public class UserCompare : IComparer<User> { public int Compare(User x, User y) { if (ReferenceEquals(x, y)) return 0; if (x.Id == y.Id) return 0; if (x == null) return 1; if (y == null) return -1; return x.Id < y.Id ? -1 : 1; } }
IComparable은 인터페이스를 상속받은 클래스가 비교 연산을 할 수 있게 해준다.
FindAll은 조건이 있다면 해당 조건에 만족하는 모든 자료를 리턴해주는 것을 말한다.
private void Start() { List<User> findList = users.FindAll(user => user.Id % 2 == 0); Print(findList); }
yield return을 사용하면 반복문의 다음 값을 제공해 주는 역할을 한다.
public class BuiltInType : IEnumerable<string> { public IEnumerator<string> GetEnumerator() { yield return "object"; yield return "byte"; yield return "uint"; yield return "ulong"; yield return "float"; yield return "char"; yield return "bool"; yield return "ushort"; yield return "decimal"; yield return "int"; yield return "sbyte"; yield return "short"; yield return "long"; yield return "void"; yield return "double"; yield return "string"; for (int i = 0; i < 10; i++) yield return i.ToString(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } }