名前でインデックス付けされた一連のオブジェクトを格納する TDictionary があり、すべてのオブジェクトを調べられるようにしたいと考えています。だから私はこれを試しました:
var enumerator: TMyObject;
begin
for enumerator in myDictionary do
しかし、それはコンパイルされません。「互換性のない型: 'TMyObject' および 'TPair'
だから私はそれを少し違った方法で試しました:
var enumerator: TPair<string, TMyObject>;
それもコンパイルされませんでした。このエラー メッセージはさらに奇妙です: Incompatible types: 'TPair' and 'TPair'
どうやら、for .. inループで辞書を列挙するには、ある種のファンキーな文法が必要なようです。正しく宣言する方法を知っている人はいますか?
編集: Fabio Gomes は適切に動作する例を示しましたが、私のコードはまだ彼の方法を使用してコンパイルされません。別の部署で働いているからでしょうか?Value 側で使用するディクショナリとクラスは両方とも 1 つのユニットで定義され、このコードは別の場所にあります。それはコンパイラのバグになりますか?誰でもこれを確認できますか?
編集 2: 問題が見つかりました。 http://qc.embarcadero.com/wc/qcmain.aspx?d=69461興味のある方はどうぞ。