C#中HashTable的用法
,哈希表(Hashtable)简述
  .NET Framework中,HashtableSystem.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查,同时key是区分大小写;value用于存储对应于key的值。Hashtablekeyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.
,哈希表的简单操作
 在哈希表中添加一个keyvalue键值对:HashtableObject.Add(key,value);
 在哈希表中去除某个keyvalue键值对:HashtableObject.Remove(key);
 从哈希表中移除所有元素:          HashtableObject.Clear();
 判断哈希表是否包含特定键key      HashtableObject.Contains(key);
 下面控制台程序将包含以上所有操作:
using System;
using System.Collections; file使用Hashtable时,必须引入这个命名空间
class hashtable
{
  public static void Main()
  {
  Hashtable ht=new Hashtable(); file创建一个Hashtable实例
  ht.Add(E,e);添加keyvalue键值对
  ht.Add(A,a);
  ht.Add(C,c);
  ht.Add(B,b);
  string s=(string)ht[A];
  if(ht.Contains(E)) file判断哈希表是否包含特定键,其返回值为truefalse
    Console.WriteLine(the E keyexist);
  ht.Remove(C);移除一个keyvalue键值对
  Console.WriteLine(ht[A]);此处输出a
  ht.Clear();移除所有元素
  Console.WriteLine(ht[A]); file此处将不会有任何输出
  }
}
,遍历哈希表
 遍历哈希表需要用到DictionaryEntry Object,代码如下:
 for(DictionaryEntry de in ht) fileht为一个Hashtable实例
 {
  Console.WriteLine(de.Key);de.Key对应于keyvalue键值对key
  Console.WriteLine(de.Value);de.Key对应于keyvalue键值对value
 }
,对哈希表进行排序
  对哈希表进行排序在这里的定义是对keyvalue键值对中的key按一定规则重新排列,但是实
际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
 ArrayList akeys=new ArrayList(ht.Keys); file别忘了导入System.Collections
 akeys.Sort(); file按字母顺序进行排序
 for(string skey in akeys)
 {
  Console.Write(skey + );
  Console.WriteLine(ht[skey]);排序后输出
 }
//C#拥有的泛型集合
            //List<>
            //Dictionary<>
            //SortedList<>
            //Queue<>
            //LinkedList<>
            //Stu stu1 = new Stu();
            //liststu.Add(stu1);
泛型集合的语法:
List<数据类型> 实例名 = new List<数据类型>();
例:
            List<int> listint = new List<int>();
            List<Student> stu = new List<Student> ();
c#中this的用法
C#,this关键字代表当前实例,我们可以用this.来调用当前实例的成员方法,变量,属性,字段等; 也可以用this来做为参数状当前实例做为参数传入方法. 还可以通过this[]来声明索引器 下面是你这段程序的注解: // 引入使命空间System using System; // 声明命名空间CallConstructor namespace CallConstructor { // 声明类Car public class Car { // Car类中: // 声明一个非静态的整型变量petalCount,初始值为0 // 未用Static声明的变量叫做静态变量,非静态成员属于 类的实例,我们只能在调用类的构造函数对类进行实例化后才能通过所得的实例加"."来访问 int petalCount = 0; // 声明一个非静态的字符串变量s,初始值为"null"; // 注意:s = "null"s = null是不同的 String s = "null"; / ...
修饰符
  修饰符是用于限定类型以及类型成员的申明的一种符号。
13种修饰符,按功能可分为三部分:存取修饰符,类修饰符和成员修饰符. 访问修饰符: public:访问不受限制。 protected:访问仅限于包含类或从包含类派生的类型。只有包含该成员的类以及继承的类可以存取. Internal:访问仅限于当前程序集。只有当前工程可以存取. protected internal:访问仅限于当前程序集或从包含类派生的类型。 private:访问仅限
于包含类型。只有包含该成员的类可以存取. 类修饰符: abstract:可以被指示一个类只能作为其它类的基类. sealed:指示一个类不能被继承. 成员修饰符: abstract:指示该方法或属性没有实现. const:指定域或局部变量的值不能被改动. event:声明一个事件. extern:指示方法在外部实现. override:对由基类继承成员的新实现. readonly:指示一个域只能在声明时以及相同类的内部被赋值.
Int32.TryParse 方法 (String, Int32)

将数字的字符串表示形式转换为它的等效 32 位有符号整数。一个指示操作是否成功的返回值
int sum = 0;
if (int.TryParse  ("123", out sum))/*string类型转换为int类型,然后输出,是数字的话,就显示ok,错的话就显示error
            {
                Console.WriteLine("ok");
            }
            else
            {
                Console.WriteLine("Error");
 
SortedList的使用示例
public class TestSortedList
    {
        public static void Main()
        {
            // 创建一个SortedList对象
            SortedList mySL = new SortedList();
            mySL.Add("First", "Hello");
            mySL.Add("Second", "World");
            mySL.Add("Third", "!");
            //列举SortedList的属性、键、值
            Console.WriteLine("mySL");
            Console.WriteLine("  Count:    {0}", mySL.Count);
            Console.WriteLine("  Capacity: {0}", mySL.Capacity);
            Console.WriteLine("  Keys and Values:");
            PrintIndexAndKeysAndValues(mySL);

            #region SortedList获得键、值列表
            SortedList mySL1 = new SortedList();
            mySL1.Add(1.3, "fox");
            mySL1.Add(1.4, "jumped");
            mySL1.Add(1.5, "over");
            mySL1.Add(1.2, "brown");
            mySL1.Add(1.1, "quick");
            mySL1.Add(1.0, "The");
            mySL1.Add(1.6, "the");
            mySL1.Add(1.8, "dog");
            mySL1.Add(1.7, "lazy");

            //获得指定索引处的键和值
            int myIndex = 3;
            Console.WriteLine("The key  at index {0} is {1}.", myIndex, mySL1.GetKey(myIndex));
            Console.WriteLine("The value at index {0} is {1}.", myIndex, mySL1.GetByIndex(myIndex));

            // 获得SortedList中的键列表和值列表
            IList myKeyList = mySL1.GetKeyList();
            IList myValueList = mySL1.GetValueList();

            // Prints the keys in the first column and the values in the second column.
            Console.WriteLine("\t-KEY-\t-VALUE-");
            for (int i = 0; i < mySL1.Count; i++)
                Console.WriteLine("\t{0}\t{1}", myKeyList[i], myValueList[i]);
            #endregion
            #region SortedList中的元素重新赋值
            // Creates and initializes a new SortedList.
            SortedList mySL2 = new SortedList();
            mySL2.Add(2, "two");
            mySL2.Add(3, "three");
            mySL2.Add(1, "one");
            mySL2.Add(0, "zero");
            mySL2.Add(4, "four");

            // 打印显示列表的键和值
            Console.WriteLine("The SortedList contains the following values:");
            PrintIndexAndKeysAndValues(mySL2);
            // 获得指定键的索引
            int myKey = 2;
            Console.WriteLine("The key \"{0}\" is at index {1}.", myKey, mySL2.IndexOfKey(myKey));

            // 获得指定值的索引
            String myValue = "three";
            Console.WriteLine("The value \"{0}\" is at index {1}.", myValue, mySL2.IndexOfValue(myValue));


            // 重新设置指定索引处的值
            mySL2.SetByIndex(3, "III");
            mySL2.SetByIndex(4, "IV");

            //打印显示列表的键和值
            Console.WriteLine("After replacing the value at index 3 and index 4,");
            PrintIndexAndKeysAndValues(mySL2);sortedlist
            #endregion

            Console.ReadKey();

        }

        //打印SortedList中的键和值
        public static void PrintIndexAndKeysAndValues(SortedList myList)
        {
            Console.WriteLine("\t-INDEX-\t-KEY-\t-VALUE-");
            for (int i = 0; i < myList.Count; i++)
            {
                Console.WriteLine("\t[{0}]:\t{1}\t{2}", i, myList.GetKey(i), myList.GetByIndex(i));
            }
            Console.WriteLine();
        }

    }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。