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终止一个整数?