我有一个数据对象
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
for each d in ol do begin l.Add(d.s, d); end;
但我想使用LINQ语句(首选)或 For Loop expression . 当只返回一个元素时很容易,但不确定字典中两个元素的语法。
编辑:我很喜欢这个,但我不熟悉德尔菲。在C#中,就这么简单 ToDictionary
ToDictionary
var dict = ol.ToDictionary(o => o.s, o => o);
我认为德尔菲的等价物是:
var dict := ol.ToDictionary(o -> o.s, o -> o);