最近、TStringListを覚えて配列代わりによく使ってます

で、一次元なら問題ないのですが多次元に使いたい場合は
array of TStringList としてTStringListを配列にする方法以外ないの
でしょうか?
またこの場合のTStringList内の全てのカウントを知る方法は
for i:=0 to Length(stringlist)-1 do
 intTotal:=stringlist[i].Count+intTotal;

と一つずつ求めていく以外方法はないのでしょうか?