使用自定义键

时间:2015-09-10 21:34:08

标签: c# dictionary

我使用自定义键的Dictionary如下:

Dictionary<ClassOfEnums, AnotherClassofInformation> properties = 
    new Dictionary<ClassOfEnums, AnotherClassofInformation>(new ClassofEnumsComparer())

密钥ClassofEnums如下:

public class ClassOfEnums 
{
  Enum A;
  Enum B;
}

AnotherClassofInformation包含一个信息列表。我将一堆条目添加到字典中,如下所示:

Dictionary<ClassOfEnums, AnotherClassofInformation> properties = 
    new Dictionary<ClassOfEnums, AnotherClassofInformation>(new ClassofEnumsComparer())
    {
        { new ClassOfEnums {a=1234,b=6789}, new AnotherClassofInformation{...}},
        { new ClassOfEnums {a=0987,b=4680}, new AnotherClassofInformation{...}},
        { new ClassOfEnums {a=1234,b=1357}, new AnotherClassofInformation{...}},
        //and so on, where the hash of ClassOfEnums is unique for each record
    }

根据有关自定义词典键的文档和在线信息,我已经实现了一个比较函数ClassOfEnumsComparer。

我想要做的是从属性中选择所有条目,例如key.a == 1234,并将它们作为新的字典(或数组)返回。是的,我可以手动创建包含我想要的其他词典,但我想只保留一个属性词典,因为数据会定期发展。

这是我对此的第一次微弱尝试。

Dictionary<ClassOfEnums, AnotherClassofInformation> getSubsetofProperties(Enum q)
{
    Dictionary<ClassOfEnums, AnotherClassofInformation> p = 
        properties.SelectMany(x => x.Key.a == q).ToDictionary(new ClassofEnumsComparer()); 

    return p;
}        

我还在采取其他方法吗?

0 个答案:

没有答案