吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 469|回复: 9
收起左侧

[已解决] 两个StringList能进行比较吗?

[复制链接]
冥界3大法王 发表于 2024-9-26 14:04
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.

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

a952135763 发表于 2024-9-26 14:33
凭直觉  我估计不行  
Equals 直接比较地址了  不会比较列表数据是否相等
 楼主| 冥界3大法王 发表于 2024-9-26 14:46
a952135763 发表于 2024-9-26 14:33
凭直觉  我估计不行  
Equals 直接比较地址了  不会比较列表数据是否相等

查帮助了,似乎没有直接的方法
homejun 发表于 2024-9-26 15:13
Nettos 发表于 2024-9-26 15:16
我有个想法,你觉得转MD5来比较咋样,如果担心MD5冲突,转哈希来比较值

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
黄色土豆 + 1 + 1 我很赞同!

查看全部评分

lovemit 发表于 2024-9-26 15:39
for循环。
lies2014 发表于 2024-9-26 15:56
StringList1, StringList2 定义为 TStrings 就可以了

[Delphi] 纯文本查看 复制代码
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.
 楼主| 冥界3大法王 发表于 2024-9-26 16:02
lies2014 发表于 2024-9-26 15:56
StringList1, StringList2 定义为 TStrings 就可以了

[mw_shl_code=delphi,true]unit Unit11;

怪我没说清,
if 列表1元素  被列表2元素包括,
输出列表2,当前索引值(字串)
lies2014 发表于 2024-9-26 16:16
冥界3大法王 发表于 2024-9-26 16:02
怪我没说清,
if 列表1元素  被列表2元素包括,
输出列表2,当前索引值(字串)

这个可能只有自己实现了

免费评分

参与人数 1吾爱币 +3 收起 理由
冥界3大法王 + 3 谢谢@Thanks!

查看全部评分

 楼主| 冥界3大法王 发表于 2024-9-26 17:14
lies2014 发表于 2024-9-26 16:16
这个可能只有自己实现了

太好了,那我也就放心了。
总想优化臃肿的代码。
查过帮助,没有该方法。
再把原先的顺一下,就得了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 09:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表