TList를 취하고 TList의 모든 요소에 대한 String 표현을 반환하는 함수를 작성하려고합니다. 당신이 그것에 TList<String>
를 전달할 수 없습니다 제외 Delphi : 문자열이 객체가 아닙니다.
function ListToString(list:TList<TObject>):String;
같은 함수를 시도했다.
E2010 Incompatible types: 'TList<System.TObject>' and 'TList<System.string>'
문자열은 Object가 아닙니다.
function StringListToString(list:TList<string>):String;
이 유일한 솔루션 :이 문제를 해결하기 위해, 나는 두 번째 기능을 작성했습니다? 문자열을보다 '객체와 같은'것으로 취급하는 다른 방법이 있습니까?
비슷한 맥락에서 두 개의 TLists를 비교하는 '같음'함수를 작성하려고했습니다. 다시 나는 (아마도 제네릭을 사용하고 계십니까?)이 기능을 쓸 수있는 방법이 있나요 같은 문제
function AreListsEqual(list1:TList<TObject>; list2:TList<TObject>):boolean;
로 실행 그래서 그것은 또한 TList<String>
을 처리 할 수 있습니까? 문자열과 객체를 모두 처리하는 코드를 만들 때 알아야 할 다른 트릭이나 '우수 사례'가 있습니까? 아니면 모든 기능에 대해 두 가지 버전을 생성합니까? 제네릭이 도움이 될 수 있습니까?
저는 Java 배경이지만 현재는 Delphi에서 작동합니다. 최근에 그들은 자바 세상 (또는 Java에서 복사 한 C# 세계)에서 Delphi에 많은 것을 추가하고있는 것으로 보입니다. equals()와 hashcode()를 TObject에 추가하고 제네릭 컬렉션 프레임 워크 등을 만드는 것. Strings를 사용할 수 없다면이 추가가 매우 실용적인 것인지 궁금합니다.
[편집 : 누군가가 TStringList를 언급했습니다. 나는 그것을 지금까지 사용했지만, 나는 TList에 대해 묻고있다. 내가 (문자열을 포함한) 모든 것을 사실상 TList를 사용하여 갈 수있는 청소기 방법입니다 경우 해결하려고 노력하고 있습니다.]
'TList'을 지원하는데 많은 노력을 기울이지는 않을 것입니다. 아무도 그것을 사용하지 않습니다. [TStringList']보다 열등합니다 (http://stackoverflow.com/questions/279471/tstringlist-vs-tliststring). 다른 곳에서 당신의 노력에 집중하십시오. –
TList의 stringrepresentation은 어떤 모양입니까? –