1

我有这样的字典

Dictionary<MyStructure, MyObject>

MyStructure 表示公共结构... MyObject 表示特定实体...

然后通过事件我将我的字典作为

IEnumerable<MyObject> col = this.GetCollection().Values;

然后,当我管理我的事件时,我使用我的 IEnumerable 但我想将其转换为以前的字典以访问它的属性,但我无法做到。我试试这个。

        Dictionary<MyStructure, MyObject> dict =
            args.MyObjectCollection.ToDictionary(x => x.Key, y => y.Value);

我正在使用“使用 System.Linq;” 并且 Key 和 Value 无法识别。当我在 x 或 y 之后写点时。助手向我展示了对象 MyObject 的属性。

4

2 回答 2

3

当你使你的 IEnumerable 时,你失去了你的 MyStructure 键......如果你知道一种从 MyObject 实例创建适当结构的方法,那么你可以解决这个问题......

MyObjectCollection.ToDictionary(x=>makeStructFromMyObject(x), x=>x);


//... with...

private MyStruct makeStructFromMyObject(MyObject obj)
{
   //to be implemented by you
}

如果您正在寻找替代方案...从仍然具有原始数据的位置传递整个字典

于 2013-11-04T23:31:20.033 回答
1

如果您的集合不是 KeyValuePairs 或其他具有 Key 和 Value 属性的类型的集合,则不能调用它们。所有值的集合只是该类型的集合。

于 2013-11-04T23:11:37.533 回答