c# - 使用反向 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;
}
}
解决方案
如果您在该列表中有 10 个项目,那么您将从 9 倒退到 0(默认情况下索引从零开始)
在您的情况下,0
表示列表中的第一项,因此只需检查索引是0
if (i == 0)
(阅读评论后编辑)
在您的for
循环中,您声明i
为 an int
,其值为.Count - 1
:
for (int i = stockList.Count - 1; i >= 0; i--)
所以在你的循环i
中只是一个变量,但由于你声明它的方式,它也将是你遍历循环时列表的索引值。
希望有帮助。
推荐阅读
- c# - CryptoJS Encryption and Decryption in UWP C#
- javascript - 如何在 Vue JS 中渲染服务器发送的 HTML 文件?
- ios - SignIn via AppleId throwing "invalid_grant"
- visual-studio-code - Can't launch VS Code from Windows Terminal inside WSL 2
- angular - Angular UI not updating ngFor after async call
- c# - Which way is better to map a string array and null check?
- c# - navPage.SetHideNavigationBarSeparator(true) 不再适用于 Xamarin 4.5 最新的任何解决方案,不适用于以下代码
- java - 无法在 IF 语句中使用布尔值
- git - 如何在 Git 本地完全排除子目录
- java - charAt() 方法如何从字符串中获取数字并将它们放入 Java 中的新字符串中?