_cuclife.com
当前位置:cuclife.com > IT > ASP.NET >

.NET,你忘记了么?(三)——关于Array和List的使用

  之前,一直在谈.NET框架方面的问题,今天来谈谈关于Array和List的使用问题,这应该算是属于算法的最基础的东西了。只是提醒大家对这个问题稍加注意。

  写这个是因为一个同学的求助,事情是这样的,他去负责公司的一个培训模块,在培训模块中,有一个功能是自动成卷。然后,我们会很容易地想到洗牌算法。于是我给他大概解释了洗牌算法的过程和步骤,然后他给出了这样的代码,还很骄傲地告诉我,他使用了泛型……

List<int> list = new List<int>();
for (int i = 0; i < 10; i++)
{
  list.Add(i);
}      
Random r = new Random();
for (int j = 0; j < 100; j++)
{
  int temp;
  int x1 = r.Next(10);
  int x2 = r.Next(10);
  temp = list[x1];
  list[x1] = list[x2];
  list[x2] = temp;
}

  我委婉地告诉他,他这个方法不好,然后写下了下面的代码:

int[] array = new int[10];
for (int i = 0; i < 10; i++)
{
  array[i] = i;
}
Random r = new Random();
for (int j = 0; j < 100; j++)
{
  int temp;
  int x1 = r.Next(10);
  int x2 = r.Next(10);
  temp = array[x1];
  array[x1] = array[x2];
  array[x2] = temp;
}

  他很不屑地对我说,不是都一样么!而且还在以使用了泛型为豪!我无语……

  我仅仅把List(链表)换成了Array(数组),有人会说,这样的关系大么?

文章来源:网络整理  本站编辑:兰特
上一篇:.NET,你忘记了么?(二)——使用using清理非托管资源
下一篇:.NET,你忘记了么?(三续)——重新理解ListT
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)