C#知识整理

2019-12-30 16:21:45丽君

ArrayList arr1 = new ArrayList();  
 arr.Add(12);   ==>定义int类型       
 arr.Add(true);  ==>定义bool类型         arr.Add("Hello");  ==>定义字符串类型   
  arr.Insert(1,"World");  ==>在第一个后面插入字符串"World"
 IEnumerator ie = keys.GetEnumerator(); ==>返回访问集合的枚举数 
    while(ie.MoveNext())  ==>枚举数推进到集合的下一元素 
    {
   Console.WriteLine(ie.Current); ==>获取集合中当前元素
   Console.WriteLine("{0}-----{1}",ie.Current,ht[ie.Current]);
    }

17.List 泛型: ①类和方法的具体参数可延迟到客户代码中声明,实现.

           ②可以与任何数据类型一起工作(类、方法).


定义Student按照学号排序的类:
 class MyStudentCompare:IComparer<Student> ==>定义类型为比较两个对象而实现的方法
 { 
  public int Compare(Student st1, Student st2)
  {
  return st1.No - st2.No;
  }
 }
 定义Student类:
 Class Student
 {
 public int No { get; set; }
      
 public string Name { get; set; }
 }
 定义Student泛型:
 List<Student> list = new List<Student>(); ==>定义Student类型的泛型
 list.Add(new Student(1002, "张三2"));
 list.Add(new Student(1004, "张三4"));
 list.Add(new Student(1003, "张三3"));
 list.Add(new Student(1001, "张三1"));
 list.Add(new Student(1005, "张三5"));
 list.Sort(new MyStudentCompare()); ==>调用定义的类方法
 foreach (Student st in list)
 {
 Console.WriteLine(st.ToString());
 }

18.LinkedList 类型: 双向列表,效率较高, 只能找第一个和最后一个.


LinkedList<int> lnk = new LinkedList<int>(); ==>定义int类型的泛型 
 lnk.AddFirst(1); 
 lnk.AddLast(2); 
 lnk.AddLast(3); 
 foreach (var lnk1 in lnk)  ==> var可以识别类型,var本身也是种类型
 {
  Console.WriteLine(lnk1);
 } 
 LinkedListNode<int> first = lnk.First; ==>获取第一个节点 
 Console.WriteLine(first.Value);  ==>把第一个节点值输出

19.Dictionary :需要引用 using System.Collections 命名空间.

描述: ①从一组键(key)到一组值(value)的映射,每个添加项都是由一个值及其相关联的键组成.

         ②任何键都必须是唯一的.

         ③键不能为空引用null,若值为引用类型,则可以为空值.

         ④key和value可以是任何类型(string,int,custom,class).


 Dictionary<int, string> dic = new Dictionary<int, string>();
 dic.Add(0531, "济南"); 
 dic.Add(0532, "青岛"); 
 ICollection<int> key2 = dic.Keys; ==>获取dic中的键的集合 
 foreach (var k in key2) ==> var 是3.0 新加的功能
 {
 Console.WriteLine("{0}----{1}", k, dic[k]);
 }