2013-10-19 23 views
1

我想分割一个数组,它从列表字符串中获取它的数据。我设法分割字符串,但我似乎无法解决如何单独使用拆分字符串的每个元素。下面是我有:分割字符串数组,然后分别使用每个元素

 DriveInfo[] loadedDrives = DriveInfo.GetDrives(); 

     foreach (DriveInfo ld in loadedDrives) 
     { 
      if (ld.DriveType == DriveType.Removable) 
      { 
       if (ld.IsReady == true) 
       {    
         deviceInfo.Add(ld.VolumeLabel + ": , " + ld.TotalSize + ": , " + ld.AvailableFreeSpace + ": , " + ld.DriveFormat);  //Add data to list  
       } 
      } 
     } 

     foreach (String st in deviceInfo) 
     { 

      string[] deviceSel; 

      deviceSel = st.Split(splitChar); 
      string toDisplay = string.Join(Environment.NewLine, deviceSel); 
      MessageBox.Show(toDisplay); 

     } 

现在输出我从这个得到的是这样的:

  • USB设备名称
  • 总存储大小
  • 总可用空间
  • 驱动器类型,格式

这些更改取决于有问题的USB。有没有一种方法可以将这些点中的每一个都用单独的变量来表示,还是有更好的方法来完成我所做的工作?

+1

等等,你已经拥有它了!在你用newline加入之前,你已经将每个字符串放在一个单独的数组元素中。 'deviceSel [0]'是你的''USB设备名称''','deviceSel [1]'是'“Total Storage Size”“,等等。我错过了什么? – dasblinkenlight

+0

@ dasblinkenlight,完美的工作!但是,当我有2个USB设备工作时,程序会在我使用您的建议时列出他们的信息。任何解决这个问题的方法? –

+0

我相信你可以分别得到两组信息 - 每次循环迭代一次,就像你当前的程序显示多个消息框一样。 – dasblinkenlight

回答

0

会是这样的工作:

deviceSel = st.Split(splitChar); 
string toDisplay = ""; 
foreach (string device in deviceSel) 
{ 
    toDisplay += device + Environment.NewLine; 

} 
MessageBox.Show(toDisplay); 

你可以做到这一点的基础上指数@dasblinkenlight建议一环或访问。