이 모음 (IEnumerable<T>
의 서브 클래스) 하나 쉽게 System.Linq
라이브러리 기능을 사용할 수 인 경우
int min = new int[] {2,3,4,8}.Min();
또한 그것은 자신에 이러한 방법을 쉽게 구현할 수 :
public static class Maths {
public static T Min<T> (params T[] vals) {
return vals.Min();
}
public static T Max<T> (params T[] vals) {
return vals.Max();
}
}
을 간단한 스칼라만으로이 메서드를 호출 할 수 있으므로 Maths.Min(14,25,13,2)
은 2
이됩니다.
이
은 일반적인 방법, 그래서 숫자의 각 유형에 대해이 방법을 구현하기 위해 필요 (
int
,
float
를, ...)
나는 이러한 방법은 일반적으로 구현되지 않은 이유는 기본적인 이유를 생각이 없다 이 메서드는 배열을 호출 할 때마다 (또는 적어도
IList
개체를 만들어야합니다. 낮은 수준의 메서드를 유지함으로써 오버 헤드를 피할 수 있습니다. 그러나 이러한 메서드를
Math
클래스에 추가하여 일부 프로그래머가 더 쉽습니다.
원하는 항목이 아니지만 LINQ에는 IEnumerable에 대한 최소 확장자가 있습니다. –
Variadic 함수를 호출하면 배열이 할당됩니다. 이것은 단순한 최소/최대에 대해 너무 많은 오버 헤드로 간주되었을 수 있습니다. – arx