首页 > 解决方案 > 使用反向 For 循环时如何判断我是否到达列表的开头?

问题描述

我对 C# 相当陌生,所以如果这是一个简单的问题,我很抱歉

--

我有一个库存对象列表,我正在使用 for 循环向后浏览列表。stock 对象的每个属性都设置为一个文本框以显示值,并且有一个按钮允许用户循环浏览每个对象,从而更改文本框的值。

我需要告诉我是否到达列表的开头,以便我可以停用允许用户向后浏览列表的按钮。

注意- 计数 > 1,因为我必须跳过列表中的第一项。

这是我的代码:

            if (stockList.Count > 1)
            {

                for (int i = stockList.Count - 1; i >= 0; i--)
                {
                    txtName.Text = stockList[i].Name;
                    numLastPrice.Value = stockList[i].LastPrice;
                    numOpeningPrice.Value = stockList[i].OpeningPrice;
                    numLowPrice.Value = stockList[i].LowPrice;
                    numHighPrice.Value = stockList[i].HighPrice;

                    if (i == ???)
                    {
                        txtName.Text = stockList[i].Name;
                        numLastPrice.Value = stockList[i].LastPrice;
                        numOpeningPrice.Value = stockList[i].OpeningPrice;
                        numLowPrice.Value = stockList[i].LowPrice;
                        numHighPrice.Value = stockList[i].HighPrice;

                        btnBack.Enabled = false;
                    }
                }

标签: c#for-loopreverse

解决方案


如果您在该列表中有 10 个项目,那么您将从 9 倒退到 0(默认情况下索引从零开始)

在您的情况下,0表示列表中的第一项,因此只需检查索引是0

if (i == 0)

(阅读评论后编辑)

在您的for循环中,您声明i为 an int,其值为.Count - 1

for (int i = stockList.Count - 1; i >= 0; i--)

所以在你的循环i中只是一个变量,但由于你声明它的方式,它也将是你遍历循环时列表的索引值。

希望有帮助。


推荐阅读