集合类
集合常用操作 添加、遍历、移除
命名空间 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方法。 View Code View Code View Code 翻译类
1 //从一个整数的ArrayList、List 中取出最大数。别用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 li = new List ();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();
l练习2:把1,2,3转换为1壹 2贰 3叁
1 //练习:把1,2,3转换为1壹 2贰 3叁 2 Dictionarydi = new Dictionary (); 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();
练习3:(面试题)计算字符串中每种字符出现的次数。“Welcome to Chinaworld”,不区分大小写,打印“W2”“e 2”“o 3”……
1 //练习:计算字符串中每种字符出现的次数(面试题)。“Welcome to Chinaworld”,不区分大小写,打印“W2”“e 2”“o 3”…… 2 Dictionarydi = new Dictionary (); 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 else11 {12 di[item] += 1;13 }14 }15 foreach (KeyValuePair item in di)16 {17 Console.WriteLine("{0}{1}",item.Key,item.Value);18 }19 Console.ReadKey();
练习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 Dictionarydi = new Dictionary (); 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 else18 {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 else32 {33 return "请升级数据库";34 }35 }36 }