public static SubArray </*Type[0]*/ ulong /*Type[0]*/> distinct(this SubArray </*Type[0]*/ ulong /*Type[0]*/> array) { if (array.Length <= 1) { return(array); } return(new SubArray </*Type[0]*/ ulong /*Type[0]*/> { Array = array.Array, Start = array.Start, Length = FixedArraySortGroup.Distinct(array.Array, array.Start, array.Length) - array.Start }); }
public static int sortGroupCount <valueType>(this SubArray <valueType> array, Func <valueType, /*Type[0]*/ ulong /*Type[0]*/> getValue) { return(array.Length == 0 ? 0 : FixedArraySortGroup.SortGroupCount(array.Array, getValue, array.Start, array.Length)); }
public static LeftArray <SubArray <valueType> > sortGroup <valueType>(this SubArray <valueType> array, Func <valueType, /*Type[0]*/ ulong /*Type[0]*/> getValue) { return(array.Length == 0 ? default(LeftArray <SubArray <valueType> >) : FixedArraySortGroup.SortGroup(array.Array, getValue, array.Start, array.Length)); }
public static KeyValue </*Type[0]*/ ulong /*Type[0]*/, int>[] sortGroupCount(this SubArray </*Type[0]*/ ulong /*Type[0]*/> array) { return(array.Length == 0 ? NullValue <KeyValue </*Type[0]*/ ulong /*Type[0]*/, int> > .Array : FixedArraySortGroup.SortGroupCount(array.Array, array.Start, array.Length)); }
public static valueType[] distinct <valueType>(this SubArray </*Type[0]*/ ulong /*Type[0]*/> array, Func </*Type[0]*/ ulong /*Type[0]*/, valueType> getValue) { return(array.Length == 0 ? NullValue <valueType> .Array : FixedArraySortGroup.Distinct(array.Array, getValue, array.Start, array.Length)); }