我有跟随Linq查询,该查询位于从.NET 1.1转换为3.5的Web应用程序中:
dim objListOfFilteredDataRows = from datarows as datarow in objDataSet.tables(0).rows _ where datarows("SomeColumn") = SomeValue
我在使用.NET 3.5创建的应用程序中具有完全相同的查询,并且查询返回IEnumerable.但是,已转换的应用程序中的查询将返回:
{Name = "WhereEnumerableIterator`1" FullName = "System.Linq.Enumerable+WhereEnumerableIterator`1[[System.Data.DataRow, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}
**编辑:当我突出显示表达式时,intellisense表示它不知道objListOfFilteredDataRows的类型并假定它的类型为"Object".
为什么在转换后的1.1应用程序中没有输入类型,但是在"原生"3.5中是不同的?**
我在这里错过了什么?如何将"WhereEnumeratorIterator`1转换为IEnumerable?谢谢!
不,你确实得到了IEnumerable.它恰好由System.Linq.Enumerable命名空间内的一个类实现,这是一个私有类.这是不可避免的,没有办法创建一个接口的实例.不要让调试器信息让你走错了轨道.