索引超出范围。必须为非负值并小于集合大小。由于删除数据造成的,怎么弥补呢?

private List GetRandomTrendData(List data)
{
var target = new List();
int page = 1;
const int size = 30;
Random rd = new Random();
while (true)
{
var result = new List();
data.Skip((page - 1) * size).Take(size).ToList().ForEach(x => result.Add(new ProductPriceTrend() { Id = x.Id, Price = x.Price, DateOfPrice = x.DateOfPrice }));
if (result.Count == 0) break;
if (result.Count > 5)
{
for (var i = 0; i < 15; i++)
{
var index = rd.Next(0, result.Count);
target.Add(result[index]);
result.RemoveAt(index);
}
}
else
{
target.AddRange(result);
}
page++;
}
return target;
}
}
}图片说明

看了好多天了,数据几千条实在无法找到是因为删了哪条造成的,如何弥补呢?修改索引值?在哪儿修改求支招,召唤大神!!!!

读取数据的时候加一个判断,是否为负,是否小于集合的长度