delphi helper类,删除空字符串
发布时间:2020-12-15 09:42:47 所属栏目:大数据 来源:网络整理
导读:在之前的( remove empty strings from list)问题中,我询问了从字符串列表中删除空字符串的问题 ....// Clear out the items that are emptyfor I := mylist.count - 1 downto 0 dobegin if Trim(mylist[I]) = '' then mylist.Delete(I);end;.... 从代码设计
在之前的(
remove empty strings from list)问题中,我询问了从字符串列表中删除空字符串的问题
.... // Clear out the items that are empty for I := mylist.count - 1 downto 0 do begin if Trim(mylist[I]) = '' then mylist.Delete(I); end; .... 从代码设计和重用的角度来看,我现在更喜欢一个更灵活的解决方案: MyExtendedStringlist = Class(TStringlist) procedure RemoveEmptyStrings; end; 问:在这种情况下我可以使用类助手吗?与上面设计一个新课程相比,这会是什么样子? 解决方法
这里有一个好帮手.为了使其更广泛适用,您应该选择将帮助程序与帮助程序可以应用的派生类最少的类相关联.在这种情况下,这意味着TStrings.
派生新类的巨大优势在于,您的辅助方法可用于不是由您创建的TStrings实例.明显的例子包括暴露备忘录,列表框等内容的TStrings属性. 我个人会编写一个帮助程序,使用谓词提供更一般的删除功能.例如: type TStringsHelper = class helper for TStrings public procedure RemoveIf(const Predicate: TPredicate<string>); procedure RemoveEmptyStrings; end; procedure TStringsHelper.RemoveIf(const Predicate: TPredicate<string>); var Index: Integer; begin for Index := Count-1 downto 0 do if Predicate(Self[Index]) then Delete(Index); end; procedure TStringsHelper.RemoveEmptyStrings; begin RemoveIf( function(Item: string): Boolean begin Result := Item.IsEmpty; end; ); end; 更一般地说,TStrings是一个很好的候选人.它缺少相当多的有用功能.我的助手包括: > AddFmt方法,可以一次性格式化和添加. 我确信可以添加更多有用的功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |