如果没有选择或选择一项,我试图从 ListBox 获取所有元素的列表,或者如果选择了 1 个以上,则获取所选项目的列表。我写了这样的代码,但它不能编译:
ListBox.ObjectCollection listBoXElemetsCollection;
//loading of all/selected XMLs to the XPathDocList
if (listBoxXmlFilesReference.SelectedIndices.Count < 2)
{
listBoXElemetsCollection = new ListBox.ObjectCollection(listBoxXmlFilesReference);
}
else
{
listBoXElemetsCollection = new ListBox.SelectedObjectCollection(listBoxXmlFilesReference);
}
所以为了让这段代码工作,我需要使用类似
ListBox.SelectedObjectCollection listBoxSelectedElementsCollection;
的东西,我不想要它,因为我想在这样的 foreach
中使用它: foreach (string fileName in listBoXElemetsCollection)
{
//...
}
最佳答案
如果您不需要,我会简单地处理一下,而不是弄乱 ListBox ObjectCollections。既然您想将 ListBox 上的项目作为字符串进行迭代,为什么不使用 List 并加载您显示的列表:
List<string> listItems;
if (listBoxXmlFilesReference.SelectedIndices.Count < 2) {
listItems = listBoxXmlFilesReference.Items.Cast<string>().ToList();
} else {
listItems = listBoxXmlFilesReference.SelectedItems.Cast<string>().ToList();
}
foreach (string filename in listItems) {
// ..
}