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的最佳方法是什么?(我们使用存储过程,因此更改查询是不可能的)。

谢谢大家!我期待你的回答。

c# 2012列表对象限制

在第一个循环中,只保留一个计数器:

int found = 0;
while (dr.Read() && found < 100)
{
    ++found;
    retObject.Add(new Object() // No need for "temp" anymore
    {
        PropertyA = dr.GetString(0),
        ...
        ...
    });
}
return retObject;