我有一个数据对象
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 each d in ol do
begin
l.Add(d.s, d);
end;
但我想使用LINQ语句(首选)或For Loop expression。只返回一个元素很容易,但不确定Dictionary的两个元素的语法。
答案 0 :(得分:3)
ToDictionary
调用一样简单:
var dict = ol.ToDictionary(o => o.s, o => o);
我认为Delphi的等价物是:
var dict := ol.ToDictionary(o -> o.s, o -> o);