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 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));
 }