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 Loop 表达式。只返回一个元素时很容易,但不确定字典的两个元素的语法。

4

1 回答 1

3

编辑:我直接进入了这个,但我不熟悉德尔福。在 C# 中,它就像这个ToDictionary调用一样简单:

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

我认为德尔福等价物是:

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