【发布时间】:2009-08-27 21:38:56
【问题描述】:
使用循环获取多列 ListView 中的每个项目的好方法是什么?
在做了相当多的挖掘之后,我真的找不到任何东西,所以当我找到一些东西时,我想在这里分享它,看看人们是否有更好的方法来做这件事。也有点像抢占一个肯定会出现的问题,因为我正在挠头想怎么办???呃……我?
我喜欢这个网站,所以我想分享我对上述问题的解决方案。我知道有点倒退,但我知道它会在某个地方帮助某人。 = )
private ArrayList getItemsFromListViewControl()
{
ArrayList lviItemsArrayList = new ArrayList();
foreach (ListViewItem itemRow in this.loggerlistView.Items)
{
//lviItemsArrayList.Add(itemRow.Text); <-- Already included in SubItems so ... = )
for (int i = 0; i < itemRow.SubItems.Count; i++)
{
lviItemsArrayList.Add(itemRow.SubItems[i].Text);
// Do something useful here, for example the line above.
}
}
return lviItemsArrayList;
}
这将返回一个基于线性数组的表示,所有项目都属于 ArrayList 集合对象中的目标 ListView 控件。
【问题讨论】:
-
将数据复制到
ArrayList与直接遍历Items相比有什么优势? -
您应该先提出问题,然后自己回答,然后将其标记为已接受,(当然要写下一行的答案,然后复制并粘贴),然后才有机会回答。
-
是的,你是对的。在示例中,我确实直接遍历了这些项目,但我将 ArrayList 对象保存在其他地方,因此我需要一个 ArrayList 对象,该对象可以是任何大小,具体取决于我的 ListView 中给定的行数。所以我需要处理 ListView 中每个项目的值,然后将我的结果提供给我的应用程序的另一部分。一个arraylist让我可以实现。因为它允许集合在循环遇到列表中的新行时动态增长。
标签: c# winforms listview loops