【发布时间】:2018-03-12 13:44:26
【问题描述】:
我正在尝试编写一个程序来读取包含 50 个随机单词的文件,它将包含 3 个或更少字母的单词存储在名为 SmallWords 的列表中,将包含 4 个或更多字母的单词存储在名为 LargeWords 的列表中。我正在使用 Windows 窗体,我有一个包含 2 列的 ListView 控件......“小字”和“大字”。很明显,我想做的只是将单词放在相应的列中。问题是文件没有 25 个小字和 25 个大字,你知道吗?也许它有 30 个小字和 20 个大字,所以当我执行此循环将项目添加到 ListView 时,它会抛出此异常:
ArgumentOutOfRangeException。
这是我的代码
var MaxNum = Math.Max(SmallWords.Count, LargeWords.Count);
for (var index = 0; index < MaxNum; index++)
{
ListViewItem item = new ListViewItem(SmallWords[index]);
item.SubItems.Add(LargeWords[index]);
listView1.Items.Add(item);
}
在这一行抛出异常item.SubItems.Add(LargeWords[index]);
有没有办法解决这个问题?或者喜欢另一种将项目添加到列的方式?我知道它有效,因为如果将 Math.Max(...); 更改为 Math.Min(...) 它会添加单词,但只添加 20 个大词和 20 个小词,我将在 SmallWords 列中丢失 10 个小词。
谢谢
【问题讨论】: