private static async Task <List <DeviceItemPlus> > GetMonitorDevicesAsync() { IDisplayItem[] displayItems = OsVersion.Is10Redstone4OrNewer ? await DisplayMonitor.GetDisplayMonitorsAsync() : DisplayConfig.EnumerateDisplayConfigs().ToArray(); var deviceItems = DeviceContext.EnumerateMonitorDevices().ToArray(); _ids = new HashSet <string>(deviceItems.Select(x => x.DeviceInstanceId)); IEnumerable <DeviceItemPlus> Enumerate() { foreach (var deviceItem in deviceItems) { var displayItem = displayItems.FirstOrDefault(x => string.Equals(deviceItem.DeviceInstanceId, x.DeviceInstanceId, StringComparison.OrdinalIgnoreCase)); if (displayItem is not null) { var isDescriptionNullOrWhiteSpace = string.IsNullOrWhiteSpace(deviceItem.Description); if (isDescriptionNullOrWhiteSpace || Regex.IsMatch(deviceItem.Description, "^Generic (?:PnP|Non-PnP) Monitor$", RegexOptions.IgnoreCase)) { if (!string.IsNullOrWhiteSpace(displayItem.DisplayName)) { yield return(new DeviceItemPlus(deviceItem, displayItem.DisplayName, displayItem.IsInternal)); continue; } if (!isDescriptionNullOrWhiteSpace && !string.IsNullOrWhiteSpace(displayItem.ConnectionDescription)) { yield return(new DeviceItemPlus(deviceItem, $"{deviceItem.Description} ({displayItem.ConnectionDescription})", displayItem.IsInternal)); continue; } } } yield return(new DeviceItemPlus(deviceItem)); } } return(Enumerate().Where(x => !string.IsNullOrWhiteSpace(x.AlternateDescription)).ToList()); }