delphi中的等效enumerable.max函数

Posted

技术标签:

【中文标题】delphi中的等效enumerable.max函数【英文标题】:equivalent enumerable.max function in delphi 【发布时间】:2015-04-20 14:56:03 【问题描述】:

Delphi 是否有任何等效的 csharp 代码 alphabet.max 其中字母是 字符串变量还是有等价的函数?

我正在尝试从 csharp 移植以下代码 到德尔福。

string alphabet = "ABCD";
invalphabet = new int[alphabet.Max() + 1];

https://msdn.microsoft.com/en-us/library/bb347632(v=vs.90).aspx

谢谢

【问题讨论】:

Alphabet.max() 会返回什么?字母表中最后一个元素的值?字母表中的项目数量?字母表中的最高值? @ObliviousSage 不,它不会。它将返回最高的 Char 值,其中 Char 是 16 位 UTF-16 字符类型 我更正了代码。它是 Max() 而不是 max() 【参考方案1】:

您可能正在寻找这样的东西:

uses
  Math; // for the Max function
....
var
  i: Integer;
  invalphabet: array of Integer;
  maxOrdinal: Integer;
....
maxOrdinal := -1;
for i := 1 to Length(alphabet) do
  maxOrdinal := Max(maxOrdinal, ord(alphabet[i]));
if maxOrdinal = -1 then
  // handle error condition
SetLength(invalphabet, maxOrdinal + 1);

对可能的编码不匹配保持警惕。 C# 代码使用 UTF-16,Delphi 代码使用 UTF-16 或 ANSI,具体取决于您的 Delphi 版本。当然,您可以提供仅限 ASCII 的alphabet

【讨论】:

以上是关于delphi中的等效enumerable.max函数的主要内容,如果未能解决你的问题,请参考以下文章

.NET 是不是与 Delphi 的 VCL 组件模型等效?

Delphi XE - 致命:F1027 未找到单元:“System.pas”或二进制等效项 (.dcu)

pandas 中是不是有与 excel 中的 MATCH 函数等效的函数?

Delphi中等效的BYTE数组(BYTE [])与null终止一个整数?

delphi中的showmessage函数是调用的哪个API函数

Delphi/Cpp 等价于 PHP 中的 RawURLEncode