如何访问 IQueryable中的连续元素 目的?
我需要访问 IQueryable 对象中的当前和上一个元素。 如果我有一个 int 数组,我会执行以下操作:
var array = new int[]{0,1,2,3,4};
for(var i = 1; i<array.Length ; i++)
{
method1(array[i-1], array[i]);
}
我不知道对 IQueryable 执行相同的操作,因为它没有实现 IList。
I need to access the current and previous element in an IQueryable object. If I had an int array, I would do the following:
var array = new int[]{0,1,2,3,4};
for(var i = 1; i<array.Length ; i++)
{
method1(array[i-1], array[i]);
}
I don't know to do the same with IQueryable, since it does not implement IList.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用扩展方法使这变得相当容易。
用法:
Using extension methods makes this fairly easy.
Usage:
您可以将 IQueryable<> 进入列表<> 使用 ToList<>()。
You can turn an IQueryable<> into a List<> using ToList<>().
编辑
有点误读了这个问题。 这段代码将为您提供后续元素,
我不确定是否有默认方法,但编写扩展方法来执行此操作应该不会太困难。 我假设有一个简单的 Pair 实现
通过窗口,您可以通过以下
快速和肮脏的 Pair 实现获得您想要的行为
EDIT
Misread the question a bit. This code will give you consequetive elements
I'm not sure there is default way but writing an extension method to do so shouldn't be to difficult. I'm assuming there is a simple Pair implementation
With the window you could then get the behavior you desire with the following
Quick and dirty Pair implementation
但它提供了扩展方法来从
IQueryable
实例创建数组或列表,请参阅ToArray() 和 ToList()。 然后,您可以对示例中的数组执行相同的操作。But it provides extension methods to create an array or a list from your
IQueryable<T>
instance, see ToArray() and ToList(). You can then go and do the same as you would with the array in your example.IQueryable 是 IEnumerable。 所以你可以这样做:
或者简单地将 IQueryable 转换为 IList:
IQueryable is IEnumerable. So you can do something like:
Or simply convert IQueryable into IList: