使用LINQ和ArrayList

PRA*_*T P 7 c# linq

我最近使用过LINQ

在以下代码中:

ArrayList list = new ArrayList();
var myStrings = list.AsQueryable().Cast<string>();
Run Code Online (Sandbox Code Playgroud)

有什么AsQueryable用?我知道Cast创建一个类型安全的集合,并且ArrayList已弃用.

我有一个朋友说他需要AsQueryable结合使用ArrayList.我试图理解为什么,但我不明白为什么AsQueryable需要.

他错了吗?

mar*_*ind 13

你不需要打电话AsQueryable().只有在需要将LINQ查询(用C#表示)转换为另一种域语言(例如SQL)时,才可以使用可查询.在您的情况下,因为您正在使用LINQ to Objects(您在数组列表上运行),所以不需要这样做.

您可以Cast<T>()直接在列表实例上调用该方法.另一种选择是从强类型集合开始,例如List<T>.


And*_*tan 3

AsQueryable 将用于生成 IQueryable,如果实现的话,它可以通过表达式树分析查询以重写它或将其翻译成其他语言,例如 linq to sql。

在这种情况下,这是完全没有意义的,你可以告诉你的朋友不要打扰。