Delphi 错误不兼容类型Tstringlist和Tarray

Delphi 错误不兼容类型Tstringlist和Tarray,delphi,Delphi,我不理解这个错误: function StrSplit(input: string): TArray<string>; var delimiterSet: array [0 .. 0] of char; begin delimiterSet[0] := '&'; // some character result := input.Split(delimiterSet); end; 错误类型Tstringlist和Tarray不兼容。根据您的评论,问题代码是调

我不理解这个错误:

 function StrSplit(input: string): TArray<string>;
 var
 delimiterSet: array [0 .. 0] of char; 
 begin
 delimiterSet[0] := '&'; // some character
 result := input.Split(delimiterSet);
 end;

错误类型Tstringlist和Tarray不兼容。

根据您的评论,问题代码是调用代码。你写道:

lst := StrSplit(...);
其中,
lst
是一个
TStringList
。这不会编译,因为编译器告诉你了。数组不能分配给
TStringList

而是使用
AddStrings
方法:

lst.AddStrings(StrSplit(...));
不管它值多少钱,都不需要StrSplit函数。你可以写

lst.AddStrings(richedit1.Text.Split(['&']));

我怀疑他们试图将这个函数的结果赋给一个TStringList变量;lst:=StrSplit(richedit1.Text);PS遗漏了上面正确的注释,转到字符串列表:-)使用
lst.AddStrings(StrSplit(re.Text))相反。我建议您编辑问题以提供MCVE。您不能将字符串数组直接分配给字符串列表。不同的类型。
DelimitedText
在stringlist中使用分隔符“&”也可以使用。可以使用lst.AddStrings(richedit1.Text.Split(['&'));是否与多个分隔符一起使用?是。只需将它们添加到开放数组构造函数中即可。太棒了……thanx gazillion……花了我3h。FWIW这都是有文档记录的。你找到文件了吗?
lst.AddStrings(richedit1.Text.Split(['&']));