我正在尝试将item
添加到我的listView
中。 listView
填充了,但是我得到了:
Systems.Collection.Generic.List'1 [System.String]
这是我要使用的代码:
foreach (SearchResult entry in result)
{
var members = GetGroupMemberList(entry.GetDirectoryEntry());
var item = members;
itmListItem = new ListViewItem((string)entry.Properties["sAMAccountName"][0]);
itmListItem.SubItems.Add(item.ToString());
lvwListView.Items.Add(itmListItem);
lvwListView.Refresh();
itmListItem = null;
}
谢谢
答案 0 :(得分:3)
您遇到的问题是item
不是string
:它是List<string>
,因此在其上调用ToString()
不会显示更多信息比其类型有意义。通常,人们真的很想得到类似逗号分隔的项目列表来显示,这可以通过说string.Join(", ", members)
来实现。
但是我正在阅读这里的茶叶,并认为您可能真的希望item
中的每个members
作为列表中的子项目显示,您可以这样完成:
foreach (SearchResult entry in result)
{
var members = GetGroupMemberList(entry.GetDirectoryEntry());
foreach(var item in members)
{
var itmListItem = new ListViewItem((string)entry.Properties["sAMAccountName"][0]);
itmListItem.SubItems.Add(item.ToString());
lvwListView.Items.Add(itmListItem);
}
lvwListView.Refresh();
}
请注意,我将itmListItem
声明为更靠近您实际使用的位置,因此以后不必将其设置为null
。通常最好的做法是声明变量,使其更接近用法,并在尽可能小的范围内进行。