我正在嘗試編寫一個接受任何TList並返回TList所有元素的字符串表示形式的函數。Delphi:處理字符串不是對象的事實
我試着像這樣
function ListToString(list:TList<TObject>):String;
功能也能正常工作,但你不能越過TList<String>
給它。
E2010 Incompatible types: 'TList<System.TObject>' and 'TList<System.string>'
在Delphi中,字符串不是對象。爲了解決這個問題,我寫了第二個功能:
function StringListToString(list:TList<string>):String;
這是唯一的解決方案嗎?是否有其他方法將字符串視爲更像'對象'?
以類似的方式,我也想寫一個'等號'函數來比較兩個TList。我再次遇到同樣的問題
function AreListsEqual(list1:TList<TObject>; list2:TList<TObject>):boolean;
有什麼辦法來寫這個功能(可能使用泛型?),所以它也可以處理TList<String>
?當嘗試創建處理字符串和對象的代碼時,我還應該瞭解其他任何技巧或「最佳實踐」嗎?或者我只是創建每個功能的兩個版本?泛型可以幫助嗎?
我來自Java背景,但現在在Delphi工作。看來他們最近從Java世界向Delphi添加了很多東西(或者是從Java複製它們的C#世界)。就像將equals()和hashcode()添加到TObject,並創建一個通用的集合框架等。我想知道如果這些添加是非常實用的,如果你不能使用字符串與他們。
[編輯:有人提到TStringList。到目前爲止我已經使用過,但我在問TList。我試圖找出是否使用從TList的一切(包括字符串)是去一個更清潔的方式。]
我真的不會付出太多的努力來支持'TList';沒有人使用它,因爲[它不如'TStringList'](http://stackoverflow.com/questions/279471/tstringlist-vs-tliststring)。將注意力集中在別處。 –
2010-05-26 06:04:12
TList的字符串表示怎麼看? –
2013-04-25 09:26:56