C# 无法隐式转换类型';system.collections.generic.list<;字符串>';至';字符串';

C# 无法隐式转换类型';system.collections.generic.list<;字符串>';至';字符串';,c#,methods,listviewitem,C#,Methods,Listviewitem,我创建了一个类,其中包含一个方法,用于在AD中显示选定用户的属性。当我试图调用此方法以将所有对象放入listview时,出现了错误 谢谢你的帮助 class ProgramDisplayObjAD { public static List<string> ComputersDisAD(string SelectedObjAD) { List<string> ComputerNamesList = new List<string>

我创建了一个类,其中包含一个方法,用于在AD中显示选定用户的属性。当我试图调用此方法以将所有对象放入listview时,出现了错误

谢谢你的帮助

class ProgramDisplayObjAD
{
    public static List<string> ComputersDisAD(string SelectedObjAD)
    {
        List<string> ComputerNamesList = new List<string>();

        DirectoryEntry DirEntry = new DirectoryEntry("LDAP://OU=Backoffice,OU=BIO,DC=bio,DC=corpnet1,DC=com");
        DirectorySearcher MySearcher = new DirectorySearcher(DirEntry);

        MySearcher.Filter = "(&(objectCategory=computer)(cn=" + SelectedObjAD + "))";

        foreach (SearchResult MyResult in MySearcher.FindAll())
        {
            DirectoryEntry ComputerName = MyResult.GetDirectoryEntry();

            Console.WriteLine("Computername : " + ComputerName.Properties["dNSHostName"].Value);
            Console.WriteLine("Staging Date : " + ComputerName.Properties["whenCreated"].Value);
            Console.WriteLine("Operating System : " + ComputerName.Properties["operatingSystem"].Value);
        }

        DirEntry.Close();
        DirEntry.Dispose();
        MySearcher.Dispose();

        return ComputerNamesList;
    }

private void ListObjAD_DoubleClick(object sender, EventArgs e)
    {
        string SelectedObjAD = ListObjAD.SelectedItem.ToString();

        if (ComputerName.Checked)
        {
            ComputerPage.Text = SelectedObjAD;

            DisplayObjAD.SelectedTab = ComputerPage;

            //List<string> ComputersList = ProgramDisplayObjAD.ComputersDisAD(SelectedObjAD);

            ComputerItemList.Items.Add(new ListViewItem(new string[] { ProgramDisplayObjAD.ComputersDisAD(SelectedObjAD) };
        }
类程序显示对象jad
{
公共静态列表计算机DISAD(字符串选择对象)
{
List ComputerNamesList=新列表();
DirectoryEntry DirEntry=newdirectoryEntry(“LDAP://OU=Backoffice,OU=BIO,DC=BIO,DC=corpnet1,DC=com”);
DirectorySearcher mysearch=新的DirectorySearcher(DirEntry);
MySearcher.Filter=“(&(objectCategory=computer)(cn=“+SelectedObjAD+”)”;
foreach(MySearcher.FindAll()中的SearchResult MyResult)
{
DirectoryEntry ComputerName=MyResult.GetDirectoryEntry();
Console.WriteLine(“Computername:+Computername.Properties[“dNSHostName”].Value”);
Console.WriteLine(“暂存日期:”+ComputerName.Properties[“whenCreated”].Value);
Console.WriteLine(“操作系统:+ComputerName.Properties[“operatingSystem”].Value”);
}
DirEntry.Close();
DirEntry.Dispose();
Dispose();
返回计算机名称列表;
}
私有void ListObjAD_双击(对象发送方,事件参数e)
{
字符串SelectedObjAD=ListObjAD.SelectedItem.ToString();
if(ComputerName.Checked)
{
ComputerPage.Text=已选择的bjad;
DisplayObjAD.SelectedTab=计算机页面;
//List ComputersList=程序显示对象ID.ComputersDisAD(已选择对象);
ComputerItemList.Items.Add(新ListViewItem(新字符串[]{ProgramDisplayObjAD.ComputersDisAD(SelectedObjAD)};
}

我知道该方法工作正常,但我不知道如何在名为:ComputerListDis的listviewitem中显示结果。

This:
new string[]{ProgramDisplayObjAD.ComputersDisAD(SelectedObjAD)}
尝试使用单个元素创建字符串数组,该元素是
列表
。是否要将列表转换为数组?如果是,则
ProgramDisplayObjAD.ComputersDisAD(SelectedObjAD.ToArray())
可能是您正在寻找的。@jonskey正是我想建议的答案,我认为它应该是答案。对于其余的内容,我建议@userx使用(DirectorySearcher mysearch=new DirectorySearcher(DirEntry)来使用
而不是手动处理。当发生异常时,实例不会被处理。谢谢,我使用了:“using(DirectorySearcher MySearcher=new DirectorySearcher(DirEntry);”我希望使用名为“ComputerListDis”的listviewitem中的方法显示对象用户的所有属性,该列表项包含在tabcontrol中:“ComputerTab”。我尝试此字符串[]ComputeryArray=ProgramDisplayObjAD.ComputersDisAD(SelectedObjAD.ToArray();ListViewItem ComputerListDis=new ListViewItem(ComputeryArray);foreach(ComputeryArray中的字符串项){ComputerListDis.SubItems.Add(项);ComputerItemList.Items.Add(ComputerListDis);}但这不起作用:
新字符串[]{ProgramDisplayObjAD.ComputersDisAD(SelectedObjAD)}
尝试使用单个元素创建字符串数组,该元素是
列表
。是否要将列表转换为数组?如果是,则
ProgramDisplayObjAD.ComputersDisAD(SelectedObjAD.ToArray())
可能是您正在寻找的。@jonskey正是我想建议的答案,我认为它应该是答案。对于其余的内容,我建议@userx使用(DirectorySearcher mysearch=new DirectorySearcher(DirEntry)来使用
而不是手动处理。当发生异常时,实例不会被处理。谢谢,我使用了:“using(DirectorySearcher MySearcher=new DirectorySearcher(DirEntry);”我想使用名为“ComputerListDis”的listviewitem中的方法显示对象用户的所有属性,该列表项包含在tabcontrol中:ComputerTab“。我尝试此字符串[]ComputeryArray=ProgramDisplayObjAD.ComputersDisAD(SelectedObjAD.ToArray();ListViewItem ComputerListDis=new ListViewItem(ComputeryArray);foreach(ComputeryArray中的字符串项){ComputerListDis.SubItems.Add(项);ComputerItemList.Items.Add(ComputerListDis);}但这不起作用