c# 2012列表对象限制
本文关键字:对象 列表 2012 | 更新日期: 2023-09-27 18:08:12
我有一大块代码,我知道可以做得更好,我只是不确定如何去做。我认为有一些方法可以帮助这一点,但我不确定,所以请原谅我,如果这是基本的编程。
我正在迭代一个DataReader来填充一个对象列表,但是我想限制列表中的索引数量。我当前的代码是这样的:
while (dr.Read())
{
temp.Add(new Object()
{
PropertyA = dr.GetString(0),
...
...
});
}
if (temp.Count > 100)
{
for (int i = 0; i <= 100; i++)
{
retObject.Add(new Object()
{
PropertyA = temp[i].PropertyA,
...
...
});
}
return retObject;
}
else
{
return temp;
}
这实际上是在数据集上循环两次…所以,不要听起来太像新手程序员,在查询本身中不使用TOP(###)的情况下,将结果集限制在100的最佳方法是什么?(我们使用存储过程,因此更改查询是不可能的)。
谢谢大家!我期待你的回答。
在第一个循环中,只保留一个计数器:
int found = 0;
while (dr.Read() && found < 100)
{
++found;
retObject.Add(new Object() // No need for "temp" anymore
{
PropertyA = dr.GetString(0),
...
...
});
}
return retObject;