为Idictionary创建一个linq Adapter

时间:2010-10-02 18:04:25

标签: c# linq

我为索引原因定制了集合,它是Idicationary(非泛型)的实现。这用于保存基于字符串的键和基于对象的值。

现在请原谅我的无知,我刚刚走出洞穴。

我想在它之间使用一个适配器,这是一个linq适配器,应该采用linq查询并对现有的IndexedDictionary执行操作。

为什么SO?

这是专为.net 2.0应用程序而设计的,现在我们正在缓慢而稳定地将4.0作为自然进化的一部分,因此我们采取并排的方式,因此以前编写的所有内容都应该存在,4.0功能应该存在尽可能实现为适配器。

我将总结一下我想要缩短多长时间的内容,我有一个现有的.net 2.0 IDictionary实现。现在我想将它与LINQ一起使用,这样我就可以充分利用表达式。我该怎么做?

3 个答案:

答案 0 :(得分:1)

在我看来,你不需要适配器。适配器用于转换表达式树(IQueryable)以与基础数据源进行通信。对于内存中集合,现有的扩展方法(例如LINQ to Objects,LINQ to XML和LINQ to DataSet)通常会这样做。如果这还不够,您可以编写自己的扩展方法或在类型上编写实例LINQ方法。

答案 1 :(得分:0)

不确定我是否完全理解您的目的是什么以及代码需要做什么。 LINQ功能非常强大,您可能不需要适配器。

从LINQ结果转到Dictionary,LINQ中有一个ToDictionary方法。见http://www.hookedonlinq.com/ToDictionaryOperator.ashx

干杯

Chris Farrell

答案 2 :(得分:0)

您无需对.Net 2.0 Dictionary执行任何操作,只需像使用其他任何LINQ一样使用它。它实现了IEnumerable<T>接口,因此LINQ可以使用它。请注意,当您使用LINQ迭代字典时,元素将不是“顺序”,您将不得不使用KeyValuePair<TKey, TValue>