代码之家  ›  专栏  ›  技术社区  ›  Jim McKeeth

将字典填充到For表达式的LINQ中

  •  3
  • Jim McKeeth  · 技术社区  · 14 年前

    我有一个数据对象

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

    1 回复  |  直到 14 年前
        1
  •  3
  •   Ahmad Mageed    14 年前

    编辑:我很喜欢这个,但我不熟悉德尔菲。在C#中,就这么简单 ToDictionary

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

    我认为德尔菲的等价物是:

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