首页 > 解决方案 > 如何将变量的值转换为字符串?

问题描述

我正在尝试将一个添加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;
        }

谢谢

标签: c#

解决方案


您遇到的问题item不是 a string:它是 a 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。通常,将变量声明为更接近其用途,并在尽可能小的范围内是一种好习惯。


推荐阅读