集合类

集合常用操作 添加、遍历、移除
命名空间System.Collections
一、•ArrayList 可变长度数组,使用类似于数组
  •属性 Capacity Count
  •方法
    Add()  添加    
    AddRange() 添加集合
    Remove()移除
    RemoveAt()移除索引所指
    Clear()清空
    Contains()
    ToArray()
 
二、•Hashtable 键值对(KeyValuePair)的集合,类似于字典 (没有索引,Key不能重复)
 可以遍历值、遍历键、遍历键值对(DictionaryEntry)
 
★三、泛型集合(编程中如果要使用集合,尽量使用泛型集合)
  可以规定值类型的集合。
  命名空间System.Collections.Generic
  1、List<T>类似于ArrayList
  2、Dictionary<K,V>类似于Hashtable
  T,K,V就像一把锁,锁住集合只能存某种特定的类型,这里的T,K,V也可以是其它字母
 
Dictionary<K,V>(以键值对遍历KeyValuePair<string,Student>)
   foreach(KeyValuePair<string,Student>  kvp int students)
    {
    }
 
练习1:从一个整数的ArrayList、List<int>中取出最大数。别用max方法。
 1  //从一个整数的ArrayList、List<int>中取出最大数。别用max方法。
 2             int[] i = { 1, 88, 544, 211, 54545, 12, 13, 1, 0, -8 };
 3             //ArrayList ar = new ArrayList();
 4             //ar.AddRange(i);
 5             //int max = 0;
 6             //foreach (Object item in ar)
 7             //{
 8             //    int a = Convert.ToInt32(item);
 9             //    if (a > max)
10             //    {
11             //        max = a;
12             //    }
13             //}
14             List<int> li = new List<int>();
15             li.AddRange(i);
16             int max = 0;
17             foreach (int item in li)
18             {
19                 if (item > max)
20                 {
21                     max = item;
22                 }
23             }
24             Console.WriteLine(max);
25             Console.ReadKey();
View Code
l练习2:把1,2,3转换为1壹 2贰 3叁
 1  //练习:把1,2,3转换为1壹 2贰 3叁
 2             Dictionary<int, string> di = new Dictionary<int, string>();
 3             di.Add(1,"");
 4             di.Add(2, "");
 5             di.Add(3, "");
 6             int[] i = { 1, 2, 1 };
 7             foreach (int item in i)
 8             {
 9                 Console.WriteLine(di[item]); 
10             }
11 
12             Console.ReadKey();
View Code

练习3:(面试题)计算字符串中每种字符出现的次数。“Welcome to Chinaworld”,不区分大小写,打印“W2”“e 2”“o 3”……  

 1  //练习:计算字符串中每种字符出现的次数(面试题)。“Welcome to Chinaworld”,不区分大小写,打印“W2”“e 2”“o 3”…… 
 2             Dictionary<char, int> di = new Dictionary<char, int>();
 3             string s = "Welcome to Chinaworld";
 4             foreach (char item in s)
 5             {
 6                 if (!di.ContainsKey(item))
 7                 {
 8                     di.Add(item, 1);
 9                 }
10                 else
11                 {
12                     di[item] += 1;
13                 }
14             }
15             foreach (KeyValuePair<char,int> item in di)
16             {
17                 Console.WriteLine("{0}{1}",item.Key,item.Value);
18             }
19             Console.ReadKey();
View Code

 练习4:翻译软件

 1 fangyi fy = new fangyi();
 2         private void Form1_Load(object sender, EventArgs e)
 3         {
 4            
 5             fy.Write("D:\\2.txt");
 6         }
 7 
 8         private void button1_Click(object sender, EventArgs e)
 9         {
10             txt_Value.Text = fy.Read(txt_Key.Text);
11         }

 

 1 class fangyi
 2     {
 3         //定义个字典接收数据
 4         Dictionary<string, string> di = new Dictionary<string, string>();
 5         //写的方法(从txt文档中写入字典中)
 6         public void Write(string path)
 7         {
 8             string[] s=File.ReadAllLines(path,Encoding.Default);
 9             foreach (string item in s)
10             {
11                 string[] line = item.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
12                 if (!di.ContainsKey(line[0]))
13                 {
14                     di.Add(line[0], line[1]);
15 
16                 }
17                 else
18                 {
19                     di[line[0]] = di[line[0]] + "," + line[1];
20                   
21                 }
22             }
23         }
24         //读的方法(从字典中读取)
25         public string Read(string key)
26         {
27             if (di.ContainsKey(key))
28             {
29                 return di[key];
30             }
31             else
32             {
33                 return "请升级数据库";
34             }
35         }
36     }
翻译类

 

posted on 2013-05-21 00:27  星星daddy  阅读(306)  评论(0编辑  收藏  举报