使用LINQ和ArrayList最近在下面的代码中使用了LINQ:ArrayListlist=newArrayList();varmyStrings=list.AsQueryable().Cast();什么是AsQueryable?我知道Cast创建了一个类型安全的集合并且ArrayList已被弃用。我有一个朋友说他需要AsQueryable结合ArrayList。我试图理解为什么,但我不明白为什么需要AsQueryable。他错了吗?AsQueryable将用于生成IQueryable,然后,如果实现,可以通过表达式树分析查询以重写它或将其翻译成其他语言,例如linqtosql。在这种情况下,这完全没有意义,您可以告诉您的朋友不要打扰。您不需要调用AsQueryable()。Queryable只能在LINQ查询(用C#表示)需要翻译成另一种领域语言(例如SQL)时使用。在您的情况下,由于您正在使用LINQtoObjects(您正在对数组列表进行操作),因此您不需要执行此操作。您可以直接在列表实例上调用Cast()方法。另一种选择是从强类型集合开始,例如List。使用AsQueryable()的唯一作用是使查询结果静态类型为IQueryable。出于所有意图和目的,这在对象上实际上是无用的。你真的需要:varmyStrings=list.Cast();没有AsQueryable()。那么结果的类型就是IEnumerable。或者更好的是,得到一个强类型列表:以上就是《C#学习教程:LINQ和ArrayList的使用》的全部内容,如果对你有用,还需要进一步了解《C#学习教程》,希望你多多付出注意—varmyStrings=list.Cast().ToList();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
