C# 无法隐式转换类型';system.collections.generic.list<;字符串>';至';字符串';
我创建了一个类,其中包含一个方法,用于在AD中显示选定用户的属性。当我试图调用此方法以将所有对象放入listview时,出现了错误 谢谢你的帮助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>
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);}但这不起作用