Избавиться от цикла foreach - C#
Формулировка задачи:
Получаю серийный номер флешки:
Можно как то тут избавиться от цикла?
Идея такова, что вывожу в comboBox все подключенные флешки и после того как выберу определенную, нужно показать ее серийный номер
ManagementObjectSearcher theSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'"); foreach (ManagementObject currentObject in theSearcher.Get()) { if (currentObject["Name"].ToString() == nameList[comboBox1.SelectedIndex]) { ManagementObject theSerialNumberObjectQuery = new ManagementObject("Win32_PhysicalMedia.Tag='" + currentObject["DeviceID"] + "'"); listBox1.Items.Add(theSerialNumberObjectQuery["SerialNumber"].ToString()); } else { } }
Решение задачи: «Избавиться от цикла foreach»
textual
Листинг программы
List<string> usbList; List<string> nameList; public void UsbDiskList() { string diskName = string.Empty; string diskPhys = string.Empty; usbList = new List<string>(); nameList = new List<string>(); usb_select.Items.Clear(); //Получение списка накопителей подключенных через интерфейс USB foreach (System.Management.ManagementObject drive in new System.Management.ManagementObjectSearcher( "select * from Win32_DiskDrive where InterfaceType='USB'").Get()) { //Получаем букву накопителя foreach (System.Management.ManagementObject partition in new System.Management.ManagementObjectSearcher( "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" + drive["DeviceID"] + "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition").Get()) { foreach (System.Management.ManagementObject disk in new System.Management.ManagementObjectSearcher( "ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + partition["DeviceID"] + "'} WHERE AssocClass = Win32_LogicalDiskToPartition").Get()) { //Получение буквы устройства diskName = disk["Name"].ToString().Trim(); diskPhys = drive["Name"].ToString().Trim(); usb_select.Items.Add(diskName + " (" + drive["Model"] + ")"); usbList.Add(diskName); nameList.Add(diskPhys); usb_select.SelectedIndex = 0; } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д