Избавиться от цикла 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;
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д