English 中文(简体)
编制一份清单,列出一组字典
原标题:
  • 时间:2009-06-02 05:42:43
  •  标签:

我的名单上有以下物体:

public class DemoClass
{
    public int GroupKey { get; set; }
    public string DemoString { get; set; }
    public object SomeOtherProperty { get; set; }
}

我现在要提出以下意见:

Dictionary<int, List<DemoClass>>

我想将<代码>List<DemoClass>按财产分类,GroupKey,但我不理解如何做这项工作和一些帮助。

在想到一点之后,我取得了以下必要的行为:

var groupedDemoClasses = from demoClass in mySepcialVariableWhichIsAListOfDemoClass
                            group demoClass by demoClass.GroupKey
                            into groupedDemoClass
                            select groupedDemoClass;
var neededDictionary = groupedDemoClass.ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());

但是,这究竟是怎样做一个发言?

最佳回答
var groupedDemoClasses = (from demoClass in mySepcialVariableWhichIsAListOfDemoClass
                          group demoClass by demoClass.GroupKey
                          into groupedDemoClass
                          select groupedDemoClass).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());

工作!

问题回答

你已经把它当作一线。 仅将<代码>ToDictionary放在第一行末尾。 如果你想要缩短时间,就使用功能构成的辛迪加,而不是 que。

页: 1 在这里,我要谈一下这个可怕的 be子,我正在寻找一种办法,在林克建立一个独裁者的口号,这里的谈话导致我回答。

您可以使用LINQ创建多级字典,这对于您想要按多个键或维度搜索的情况非常有用。诀窍是创建分组,然后将其转换为字典,如下所示:

  Dim qry = (From acs In ActualSales _
             Group By acs.ProductID Into Group _
             Select ProductID, Months = Group.ToDictionary(Function(c) c.Period) _
            ).ToDictionary(Function(c) c.ProductID)

由此产生的询问可如下:

 If qry.ContainsKey(_ProductID) Then
      With qry(_ProductID)
          If .Months.ContainsKey(_Period) Then
             ...
          End If
      End With
 End If

希望对需要这种询问的任何其他人都是有益的。





相关问题
热门标签