列出网络中以特定名称开头的所有计算机

时间:2016-12-20 17:17:37

标签: c#

我可以列出网络中以特定名称开头的所有计算机吗? 例如假设以下给定的计算机在网络中共享 - (键盘,显示器,monitor1,monitor235,PC6,keyboard2,PC8,PC6,PC2)

我使用下面的代码列出网络中的所有计算机 -

List<string> list = new List<string>();
using (DirectoryEntry root = new DirectoryEntry("WinNT:"))
{
    foreach (DirectoryEntry computers in root.Children)
    {
        foreach (DirectoryEntry computer in computers.Children)
        {
            if ((computer.Name != "Schema"))
            {
                list.Add(computer.Name);
            }
        }
    }
}

我可以列出所有以名称开头的PC&#34; PC&#34;? 即PC6,PC8,PC2

1 个答案:

答案 0 :(得分:1)

为什么不使用Linq?

root.Children
    .SelectMany(x => x.Children)
    .Where(x => x.Name.StartsWith("PC"))
    .Select(x => x.Name);

请参阅MSDN