【问题标题】:equivalent enumerable.max function in delphidelphi中的等效enumerable.max函数
【发布时间】: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()

标签: delphi


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多