3

私はデータオブジェクトを持っています

  Data = class
  public
    s: string;
    i: Integer;
  end;

それらの多くがリスト (またはコレクション) に含まれています。

  var ol : List<Data> := new List<Data>;
  ol.Add(new Data(s := 'One', i := 1));
  ol.Add(new Data(s := 'Two', i := 2));
  ol.Add(new Data(s := 'Three', i := 3));
  ol.Add(new Data(s := 'Four', i := 4));
  ol.Add(new Data(s := 'Five', i := 5));

そして、私はそれを辞書に入れたい:

  var l: Dictionary<string, data> := new Dictionary<String,Data>;

これを行うために for または for each ループを実行できることを知っています

  for each d in ol do
  begin
    l.Add(d.s, d);
  end;

しかし、LINQ ステートメント (推奨) またはFor ループ式を使用したいと考えています。要素を 1 つだけ返す場合は簡単ですが、Dictionary の 2 つの要素の構文についてはわかりません。

4

1 に答える 1

3

編集:私はこれに飛びつきましたが、Delphi には詳しくありません。ToDictionaryC# では、次の呼び出しと同じくらい簡単です。

var dict = ol.ToDictionary(o => o.s, o => o);

Delphiに相当するものは次のようになると思います:

var dict := ol.ToDictionary(o -> o.s, o -> o);
于 2010-10-21T21:18:37.143 に答える