gpt4 book ai didi

string - Delphi-如何实现按整数排序的整数和字符串排序表?

转载 作者:行者123 更新时间:2023-12-03 19:49:31 25 4
gpt4 key购买 nike

我想创建一个表,每行包含一个整数和一个字符串。该表应按整数排序。最终目标是提取具有最小关联整数的“ n”个字符串。

TStringlist不太正确,因为它只是一个字符串。它们具有“名称/值”对,但是它们以错误的顺序排序-我想要“值-名称”,按值排序。
TDictionary没有排序,也不能排序(除了哈希以外)

我想我可以将整数格式化为足够长的字符串,以容纳前导零的最大整数,并将其连接到TStringList中其余字符串数据的开头,但这看起来很难看。有没有一种更优雅的方法来实现此表(按整数部分排序)?

最佳答案

字符串列表仍然有效,只需将整数转换为对象字段即可。

function SortStringListByObject(List: TStringList; Index1, Index2: Integer): Integer;
begin
if Integer(List.Objects[Index1]) = Integer(List.Objects[Index2])
then result := 0
else
if Integer(List.Objects[Index1]) < Integer(List.Objects[Index2])
then result := -1
else result := 1;
end;

procedure TForm3.Button1Click(Sender: TObject);
var
sl: TStringList;
x: Integer;
begin
StartTime := Now;
sl := TStringList.Create;
try
// add some objects (and strings)
sl.AddObject('One',TObject(3));
sl.AddObject('Two',TObject(2));
sl.AddObject('Three',TObject(1));

// sory by my function
sl.CustomSort(SortStringListByObject);

// show results
for x := 0 to sl.count-1 do begin
Memo1.lines.Add(sl[x]);
end;
finally
sl.Free;
end;
end;

关于string - Delphi-如何实现按整数排序的整数和字符串排序表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40197641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com