C#常用对象

一、Random类

Random类用来产生伪随机数,生成的随机数是从“种子值”开始的,如果反复使用同一个种子值,就会生成相同的数字系列。

例如以下两种代码就是使用同一个种子值和不同种子值的区别:

             for (int i = 0; i < 10; i++)            

     {

              Random rd = new Random();

                 Console.WriteLine(rd.NextDouble());

             }      //反复使用同一个种子值,生成相同的数字系列

===========================================

            Random rd = new Random();

             for (int i = 0; i < 10; i++)            

     {

                 Console.WriteLine(rd.NextDouble());

             }      //种子值不同,生成随机数字

它的主要方法是Next方法,语法格式为Random rd = new Random();     rd.Next(MinValue,MaxValue);

MinValue和MaxValue均为非必选项,如果两项均不使用,则返回一个大于或等于0的随机数。如果两项都有,那么可以取到左边MinValue,取不到右边MaxValue。

MSDN:

默认情况下,Random类的无参数构造函数使用系统时钟生成其种子值,而参数化构造函数可根据当前时间的刻度数采用 Int32 值。但由于时钟分辨率有限,频繁地创建不同的 Random对象会创建出产生相同随机数序列的随机数生成器。通过创建单个而不是多个 Random 对象可以避免此问题。要提高性能,请创建一个 Random,以便随着时间的推移可以生成很多随机数,而不要重复新建 Random来生成一个随机数。

 

二、ArrayList类(集合)

ArrayList类是Object类型的。

object类型是预定义类System.Object的别名,是所有其他类型的基类,为派生类提供低级别的服务。所有的类型都是直接或间接地由object派生而来。因此,一个object类型的变量可以赋予任何类型的值

ArrayList类表示可按需动态增加的数组,位于System.Collections命名空间,使用时需添加。

常用属性:

Count属性:获取动态数组中实际所包含的元素数(在数组中是Length);

Item属性:获取或设置指定索引处的元素。

ArrayList类常用方法:

Add方法:将某一元素添加到动态数组的末尾;

AddRange方法:将某字符串组加到动态数组的末尾,也可以将对象自己添加进来,如:

ArrayList al = new ArrayList();

int[] nums = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, };

al.AddRange(nums);

al.AddRange(al);

Remove方法:从动态数组中删除指定元素(第一次出现的那个元素)。

  ->如果要删除的元素没有在动态数组当中,程序将一闪而过,不做任何操作。

RemoveAt方法:删除指定索引处的元素(同样是第一次出现的元素)。

  ->如果要删除的元素索引超出动态数组长度,会报异常:索引超出异常,必须为非负值并且小于索引大小。

->Remove调用了IndexOf方法

Clear方法:清空所有元素。

排序方法:Sort方法:正序排;Reverse方法:反序排。

Clone方法:创建一个副本(浅表副本),例如:

  ->ArrayList al2 = (ArrayList)al.Clone();

Insert方法:将元素插入指定索引处;

IndexOf方法:获取动态数组中指定元素的索引;

Contains方法:确定某个元素是否存在(通常用if-else进行判断);

ToArray方法:将动态数组中的所有元素复制到一个新数组中,例如:

  ->int[ ] nums = (int[ ])al.ToArray(typeof(int));  //把al转换为int数组

 

三、Hashtable类

 

Hashtable类表示哈希表,是一个键/值对的集合,键/值对根据键的哈希代码进行组织。键作为查找的索引,值代表需要的数据。

重要特征:键值不允许重复

遍历哈希数组的方法:foreach(var temp in ht)    //不建议使用var,这里只是使用var来暂时查看temp的类型

例如:

 

            Hashtable ht = new Hashtable();
ht.Add("zhang","1234");
ht.Add("li","3466");

foreach (DictionaryEntry temp in ht)
{
Console.WriteLine(temp.Key+" "+ temp.Value);
}


哈希表的常用属性(Count,Items)和方法(Add,Remove,Clear)与ArrayList类的类似,特别的属性与方法如下:

常用属性:

Keys属性:获取哈希表中的键的集合;

Values属性:获取哈希表中的值的集合

常用方法:

ContainsKey方法:判断哈希表中是否包含特定键;

ContainsValue方法:判断哈希表中是否包含特定值,例如:

->

            Hashtable ht = new Hashtable();

             ht.Add("zhang","1234");

             ht.Add("li","3466");

             Console.WriteLine(ht["zhang"]);

             if (ht.ContainsKey("li"))

             {

                 Console.WriteLine(ht["li"]);

             }

             else

             {

                 Console.WriteLine("none");

             }

 

*另外:ArrayList类对应的泛型类是List,使用方法几乎相同,只不过实例化时必须使用泛型类的实例化方法;

    Hashtable类对应的泛型类是Dictionary。

posted @ 2012-02-08 17:28  王小萌  阅读(539)  评论(0编辑  收藏  举报