集合类
集合常用操作 添加、遍历、移除
命名空间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<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();
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();
练习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();
练习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 }