IsOrdered метод расширения
This commit is contained in:
parent
4c56298bfb
commit
255533f407
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "10";
|
||||
public const string Build = "3";
|
||||
public const string Revision = "3619";
|
||||
public const string Revision = "3620";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%MINOR%=10
|
||||
%REVISION%=3619
|
||||
%COREVERSION%=3
|
||||
%REVISION%=3620
|
||||
%MINOR%=10
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
3.10.3.3619
|
||||
3.10.3.3620
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.10.3.3619'
|
||||
!define VERSION '3.10.3.3620'
|
||||
|
|
|
|||
|
|
@ -11195,6 +11195,66 @@ begin
|
|||
Result := Self.OrderByDescending(x -> x, System.StringComparer.Ordinal);
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирована ли последовательность по возрастанию
|
||||
function IsOrdered<T>(self: sequence of T): boolean; extensionmethod; where T: System.IComparable<T>;
|
||||
begin
|
||||
var prev: T;
|
||||
var first := True;
|
||||
foreach var current in self do
|
||||
begin
|
||||
if not first and (prev.CompareTo(current) > 0) then
|
||||
exit(False);
|
||||
prev := current;
|
||||
first := False;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирована ли последовательность по возрастанию в порядке, заданном компаратором comparer
|
||||
function IsOrdered<T>(self: sequence of T; comparer: IComparer<T>): boolean; extensionmethod;
|
||||
begin
|
||||
var prev: T;
|
||||
var first := True;
|
||||
foreach var current in self do
|
||||
begin
|
||||
if not first and (comparer.Compare(prev, current) > 0) then
|
||||
exit(False);
|
||||
prev := current;
|
||||
first := False;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирована ли последовательность по убыванию
|
||||
function IsOrderedDescending<T>(self: sequence of T): boolean; extensionmethod; where T: System.IComparable<T>;
|
||||
begin
|
||||
var prev: T;
|
||||
var first := True;
|
||||
foreach var current in self do
|
||||
begin
|
||||
if not first and (prev.CompareTo(current) < 0) then
|
||||
exit(False);
|
||||
prev := current;
|
||||
first := False;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирована ли последовательность по убыванию в порядке, заданном компаратором comparer
|
||||
function IsOrderedDescending<T>(self: sequence of T; comparer: IComparer<T>): boolean; extensionmethod;
|
||||
begin
|
||||
var prev: T;
|
||||
var first := True;
|
||||
foreach var current in self do
|
||||
begin
|
||||
if not first and (comparer.Compare(prev, current) < 0) then // Обратный знак
|
||||
exit(False);
|
||||
prev := current;
|
||||
first := False;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Возвращает множество HashSet по данной последовательности
|
||||
function ToHashSet<T>(Self: sequence of T): HashSet<T>; extensionmethod;
|
||||
begin
|
||||
|
|
@ -13342,13 +13402,49 @@ begin
|
|||
System.Array.Copy(a,Self,a.Length);
|
||||
end;
|
||||
|
||||
|
||||
/// Возвращает индекс последнего элемента массива
|
||||
function High(Self: System.Array); extensionmethod := High(Self);
|
||||
|
||||
/// Возвращает индекс первого элемента массива
|
||||
function Low(Self: System.Array); extensionmethod := Low(Self);
|
||||
|
||||
/// Проверяет, отсортирован ли массив по возрастанию
|
||||
function IsOrdered<T>(self: array of T): boolean; extensionmethod; where T: System.IComparable<T>;
|
||||
begin
|
||||
for var i := 0 to self.High - 1 do
|
||||
if self[i].CompareTo(self[i + 1]) > 0 then
|
||||
exit(False);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирован ли массив в порядке, заданном компаратором comparer
|
||||
function IsOrdered<T>(self: array of T; comparer: IComparer<T>): boolean; extensionmethod;
|
||||
begin
|
||||
for var i := 0 to self.High - 1 do
|
||||
if comparer.Compare(self[i], self[i + 1]) > 0 then
|
||||
exit(False);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирован ли массив по убыванию
|
||||
function IsOrderedDescending<T>(self: array of T): boolean; extensionmethod; where T: System.IComparable<T>;
|
||||
begin
|
||||
for var i := 0 to self.High - 1 do
|
||||
if self[i].CompareTo(self[i + 1]) < 0 then
|
||||
exit(False);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирован ли массив по убыванию в порядке, заданном компаратором comparer
|
||||
function IsOrderedDescending<T>(self: array of T; comparer: IComparer<T>): boolean; extensionmethod;
|
||||
begin
|
||||
for var i := 0 to self.High - 1 do
|
||||
if comparer.Compare(self[i], self[i + 1]) < 0 then // Обратный знак
|
||||
exit(False);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
|
||||
/// Возвращает последовательность индексов одномерного массива
|
||||
function Indices<T>(Self: array of T): sequence of integer; extensionmethod := Range(0, Self.Length - 1);
|
||||
|
||||
|
|
|
|||
|
|
@ -11195,6 +11195,66 @@ begin
|
|||
Result := Self.OrderByDescending(x -> x, System.StringComparer.Ordinal);
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирована ли последовательность по возрастанию
|
||||
function IsOrdered<T>(self: sequence of T): boolean; extensionmethod; where T: System.IComparable<T>;
|
||||
begin
|
||||
var prev: T;
|
||||
var first := True;
|
||||
foreach var current in self do
|
||||
begin
|
||||
if not first and (prev.CompareTo(current) > 0) then
|
||||
exit(False);
|
||||
prev := current;
|
||||
first := False;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирована ли последовательность по возрастанию в порядке, заданном компаратором comparer
|
||||
function IsOrdered<T>(self: sequence of T; comparer: IComparer<T>): boolean; extensionmethod;
|
||||
begin
|
||||
var prev: T;
|
||||
var first := True;
|
||||
foreach var current in self do
|
||||
begin
|
||||
if not first and (comparer.Compare(prev, current) > 0) then
|
||||
exit(False);
|
||||
prev := current;
|
||||
first := False;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирована ли последовательность по убыванию
|
||||
function IsOrderedDescending<T>(self: sequence of T): boolean; extensionmethod; where T: System.IComparable<T>;
|
||||
begin
|
||||
var prev: T;
|
||||
var first := True;
|
||||
foreach var current in self do
|
||||
begin
|
||||
if not first and (prev.CompareTo(current) < 0) then
|
||||
exit(False);
|
||||
prev := current;
|
||||
first := False;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирована ли последовательность по убыванию в порядке, заданном компаратором comparer
|
||||
function IsOrderedDescending<T>(self: sequence of T; comparer: IComparer<T>): boolean; extensionmethod;
|
||||
begin
|
||||
var prev: T;
|
||||
var first := True;
|
||||
foreach var current in self do
|
||||
begin
|
||||
if not first and (comparer.Compare(prev, current) < 0) then // Обратный знак
|
||||
exit(False);
|
||||
prev := current;
|
||||
first := False;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Возвращает множество HashSet по данной последовательности
|
||||
function ToHashSet<T>(Self: sequence of T): HashSet<T>; extensionmethod;
|
||||
begin
|
||||
|
|
@ -13342,13 +13402,49 @@ begin
|
|||
System.Array.Copy(a,Self,a.Length);
|
||||
end;
|
||||
|
||||
|
||||
/// Возвращает индекс последнего элемента массива
|
||||
function High(Self: System.Array); extensionmethod := High(Self);
|
||||
|
||||
/// Возвращает индекс первого элемента массива
|
||||
function Low(Self: System.Array); extensionmethod := Low(Self);
|
||||
|
||||
/// Проверяет, отсортирован ли массив по возрастанию
|
||||
function IsOrdered<T>(self: array of T): boolean; extensionmethod; where T: System.IComparable<T>;
|
||||
begin
|
||||
for var i := 0 to self.High - 1 do
|
||||
if self[i].CompareTo(self[i + 1]) > 0 then
|
||||
exit(False);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирован ли массив в порядке, заданном компаратором comparer
|
||||
function IsOrdered<T>(self: array of T; comparer: IComparer<T>): boolean; extensionmethod;
|
||||
begin
|
||||
for var i := 0 to self.High - 1 do
|
||||
if comparer.Compare(self[i], self[i + 1]) > 0 then
|
||||
exit(False);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирован ли массив по убыванию
|
||||
function IsOrderedDescending<T>(self: array of T): boolean; extensionmethod; where T: System.IComparable<T>;
|
||||
begin
|
||||
for var i := 0 to self.High - 1 do
|
||||
if self[i].CompareTo(self[i + 1]) < 0 then
|
||||
exit(False);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
/// Проверяет, отсортирован ли массив по убыванию в порядке, заданном компаратором comparer
|
||||
function IsOrderedDescending<T>(self: array of T; comparer: IComparer<T>): boolean; extensionmethod;
|
||||
begin
|
||||
for var i := 0 to self.High - 1 do
|
||||
if comparer.Compare(self[i], self[i + 1]) < 0 then // Обратный знак
|
||||
exit(False);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
|
||||
/// Возвращает последовательность индексов одномерного массива
|
||||
function Indices<T>(Self: array of T): sequence of integer; extensionmethod := Range(0, Self.Length - 1);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue