两个StringList能进行比较吗?
unit Unit11;interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
Vcl.StdCtrls;
type
TForm11 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form11: TForm11;
implementation
{$R *.dfm}
procedure TForm11.Button1Click(Sender: TObject);
var
StringList1, StringList2: TStringList;
begin
StringList1 := TStringList.Create;
StringList2 := TStringList.Create;
try
// 添加字符串到第一个列表
StringList1.Add('大白补丁');
StringList1.Add('沙盘');
StringList1.Add('快速搜索');
// 添加字符串到第二个列表
StringList2.Add('大白补丁A');
StringList2.Add('沙盘');
StringList2.Add('快速搜索BBB');
// 比较两个 TStringList
if StringList1.Equals(StringList2) then ==============》把这里改成后者列表 是否包含 前者列表之一
ShowMessage('两个 TStringList 相等')
else
ShowMessage('两个 TStringList 不相等');
finally
StringList1.Free;
StringList2.Free;
end;
end;
end.
凭直觉我估计不行
Equals 直接比较地址了不会比较列表数据是否相等 a952135763 发表于 2024-9-26 14:33
凭直觉我估计不行
Equals 直接比较地址了不会比较列表数据是否相等
查帮助了,似乎没有直接的方法 比较它们的text属性 我有个想法,你觉得转MD5来比较咋样,如果担心MD5冲突,转哈希来比较值 for循环。{:1_918:} StringList1, StringList2 定义为 TStrings 就可以了
unit Unit11;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
Vcl.StdCtrls;
type
TForm11 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form11: TForm11;
implementation
{$R *.dfm}
procedure TForm11.Button1Click(Sender: TObject);
var
StringList1, StringList2: TStrings;
begin
StringList1 := TStringList.Create;
StringList2 := TStringList.Create;
try
// 添加字符串到第一个列表
StringList1.Add('大白补丁');
StringList1.Add('沙盘');
StringList1.Add('快速搜索');
// 添加字符串到第二个列表
StringList2.Add('大白补丁A');
StringList2.Add('沙盘');
StringList2.Add('快速搜索BBB');
// 比较两个 TStringList
if StringList1.Equals(StringList2) then ==============》把这里改成后者列表 是否包含 前者列表之一
ShowMessage('两个 TStringList 相等')
else
ShowMessage('两个 TStringList 不相等');
finally
StringList1.Free;
StringList2.Free;
end;
end;
end. lies2014 发表于 2024-9-26 15:56
StringList1, StringList2 定义为 TStrings 就可以了
unit Unit11;
怪我没说清,
if 列表1元素被列表2元素包括,
输出列表2,当前索引值(字串) 冥界3大法王 发表于 2024-9-26 16:02
怪我没说清,
if 列表1元素被列表2元素包括,
输出列表2,当前索引值(字串)
这个可能只有自己实现了 lies2014 发表于 2024-9-26 16:16
这个可能只有自己实现了
太好了,那我也就放心了。
总想优化臃肿的代码。
查过帮助,没有该方法。
再把原先的顺一下,就得了。
页:
[1]