牛魔王的故事
这个你可以过滤啊。你的希望应该是:有一个5000条记录的集合,希望能从指定位置开始获取指定数量的一个连续的子集吧?如果你用LinQ可以使用下面的代码public IEnumable GetData(IEnumable source, int startIndex, int size)
{ return source.Skip(startIndex).Take(size);
}如果你用的不是LinQ,那么:public IEnumable GetData(IEnumable source, int startIndex, int size)
{ int index = 0; foreach(var item in source)
{ if(index < startIndex)
{ continue;
} if(index - startIndex > size)
{ break;
} yield return item;
}当然,上面的枚举方法不是很好,不过,一般的情况下,你的集合应该能确定类型,比如是LIST或ARRAY等,也就是说能进行下标索引的,此时就更简单了,下面的代码就用数组来实现:public IEnumable GetData(object[] source, int startIndex, int size)
{ for(int i = startIndex; i < startIndex + size && i < source.Length; i++)
{ yield return source[i];
}
}