public NetworkMonitor() { string[] _instances = new PerformanceCounterCategory(CATEGORYNAME).GetInstanceNames(); NetworkInterface[] _nics = NetworkInterface.GetAllNetworkInterfaces().Where(n => n.OperationalStatus == OperationalStatus.Up && new NetworkInterfaceType[2] { NetworkInterfaceType.Ethernet, NetworkInterfaceType.Wireless80211 }.Contains(n.NetworkInterfaceType) ).ToArray(); Regex _regex = new Regex("[^A-Za-z]"); Nics = _instances.Join(_nics, i => _regex.Replace(i, ""), n => _regex.Replace(n.Description, ""), (i, n) => new NicInfo(i, n.Description, string.Join(":", n.GetPhysicalAddress().GetAddressBytes().Select(b => b.ToString("X2")))), StringComparer.Ordinal).ToArray(); }