【发布时间】:2018-08-30 15:57:21
【问题描述】:
我有 3 个项目和 1 个子项目的列表视图
所以我想检查 item[3] 上的一行是否为 String.Empty。
如果 items[3] 为空,它不会将我的 items[3] 传递给 label1.Text。 如果 items[3] 不为空,它会将我的 items[3] 传递给我的 label1.Text .
这是我的代码
if (listView1.Items[3].SubItems[1].Text == string.Empty)
{
label1.Text = "";
}
else
{
label1.Text = listView1.Items[3].SubItems[1].Text;
}
当我的第 3 行为空时,出现错误:InvalidArgument=Value of '3' is not valid for 'index'。
那么我如何检查该行是否为空,如果它为空我应该做什么验证我不会将我的项目传递给 label1.Text,如果它不为空,它将把项目传递给 label1.Text
【问题讨论】:
-
如果你有 3 个项目,你的索引是 2。
-
索引以
0开始,所以第一个元素在位置[0]等等... -
使用 Linq 的
Skip()和Take()和 null 条件运算符可能会更安全,如果你不是 100% 确信索引会在那里。显然不会那么快,但差异应该很小 -
我认为this tutorial 可能会有所帮助
-
假设我有 4 个项目,如果我的 index[3] 为空怎么办?同样的问题。我如何检查该行是否为空,如果它为空我应该做什么验证我不会将我的项目传递给 label1.Text,如果它不为空,它会将项目传递给 label1.Text