首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

简单的代码改写,希望有人能帮一下.该如何解决

2012-01-20 
简单的代码改写,希望有人能帮一下.原代码如下:string[]Drive(){string[]tmpDrivenewstring[5]inttmp0D

简单的代码改写,希望有人能帮一下.
原代码如下:
string[]   Drive()
{
            string[]   tmpDrive   =   new   string[5];
                       
            int   tmp   =   0;

            DriveInfo[]   allDrive   =   DriveInfo.GetDrives();
                       
            foreach   (DriveInfo   d   in   allDrive)
            {                      
                    if   (d.DriveType   ==   DriveType.Fixed)
                    {
                              tmpDrive[tmp]   =   d.ToString()   ;
                              tmp++;
                    }
              }

            return   tmpDrive;
}

如何改写才能不用创建5个元素,而是根据动态创建TMPDRIVE数组?

就是类似于一下代码:
string[]   Drive()
{
            string[]   tmpDrive;       //就是这句
                       
            int   tmp   =   0;

            DriveInfo[]   allDrive   =   DriveInfo.GetDrives();
                       
            foreach   (DriveInfo   d   in   allDrive)
            {                      
                    if   (d.DriveType   ==   DriveType.Fixed)
                    {
                              tmpDrive[tmp]   =   d.ToString()   ;
                              tmp++;
                    }
              }

            return   tmpDrive;
}

[解决办法]
DriveInfo[] allDrive = DriveInfo.GetDrives();

tmpDrive = new string[allDrive.Length]; //就是这句


[解决办法]
用这条语句试试,可以动态改变数组arrayName的长度
Array.Resize(ref arryName, length);
[解决办法]
楼上的正解
利用动态数组
[解决办法]
我的使用习惯是用List <string> drivers = new List <string> ();


然后转换成字符串数组 drivers.ToArray();即可。
[解决办法]
string[] Drive()
{
int tmp = 0;

DriveInfo[] allDrive = DriveInfo.GetDrives();

string[] tmpDrive = new string[allDrive.length];

foreach (DriveInfo d in allDrive)
{
if (d.DriveType == DriveType.Fixed)
{
tmpDrive[tmp] = d.ToString() ;
tmp++;
}
}

return tmpDrive;
}

热点排行