gpt4 book ai didi

string - Delphi - 在 CASE 语句中使用函数

转载 作者:行者123 更新时间:2023-12-05 08:56:27 28 4
gpt4 key购买 nike

在 Delphi 10/Seattle 中,我正在尝试进行嵌套字符串测试...我有一个字符串,它是一个产品名称。我需要根据该产品名称找到产品类别。这将不区分大小写,并且每个产品将只属于一个类别。一旦找到类别,我就可以停止检查...我最初的方法是通过 CASE 语句中的 AnsiContainsText 来执行此操作,但这是不允许的,因为 CASE 语句没有通用函数...

我有一个应该可行的方法,但有没有更优雅的方法?我将对该类别进行大约 40 种不同的测试,并将在大约 6000 种产品上运行(循环)此测试,因此我想要尽可能高性能的东西。

      // Determine new value...
Category := '';
if ((Category = '') and (AnsiContainsText(ProductText, 'PaaS')) then Category := 'PaaS';
if ((Category = '') and (AnsiContainsText(ProductText, 'IaaS')) then Category := 'IaaS';
if ((Category = '') and (AnsiContainsText(ProductText, 'SaaS')) then Category := 'SaaS';
...

最佳答案

外包它!

function FindCategory(const ProductName: string): string;
const
categories: TArray<string> = ['PaaS', 'IaaS', 'SaaS']; // can easily be extended
var
S: string;
begin
for S in categories do begin
if ContainsText(ProductName, S) then Exit(S)
end;
result := '';
end;

关于string - Delphi - 在 CASE 语句中使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40528427/

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