文章目录
1 List(与ArrayList集合只有一个区别,list泛型集合规定了特定类型,ArrayList任意类型)
1.1 创建泛型集合对象
List< int> list = new List< int>(); < >括号内是什么类型则泛型集合就是什么类型
1.2 向泛型集合中添加元素
list.Add(1);
list.AddRange(new int[] { 1, 2, 3, 4 }); 添加int类型的数组
list.AddRange(list); 添加自己
1.3显示泛型集合
方法1:for循环
for(int i=0;i<list.Count;i++)//用for循环显示泛型集合
{
Console.WriteLine(list[i]);
}
方法2:foreach循环
foreach (int item in list)//用foreach循环显示泛型集合,与for循环效果一样
{
Console.WriteLine(item);
}
Console.ReadKey();
1.4将集合转换为数组
List<string> listTwo = new List<string>();
listTwo.ToArray();
2 Dictionary(键值对集合,与ArrayList集合只有一个区别,Dictionary泛型集合规定了特定类型,ArrayList任意类型)
2.1 创建Dictionary键值对集合对象
Dictionary< int, string > dic = new Dictionary< int, string >();
2.2 向Dictionary键值对集合中添加元素
dic.Add(1, "张三");
dic.Add(2, "李四");
dic[3] = "王五";
dic[4] = "小李"
2.3 显示Dictionary键值对集合
foreach(var item in dic.Keys) 只遍历了键
{
Console.WriteLine("{0}------{1}",item, dic[item]);
}
Console.ReadKey();
遍历键和值
foreach(keyValuePair< int,stirng> item in dic)
{
Console.WriteLine("{0}-----------{1}",item.key,item.value);
}
3 练习题
3.1 练习一
有一个数组,将数组中的偶数拿出来放到一个集合中,再将数组中的奇数拿出来放到一个集合中,最后两个集合合并为一个集合,并让奇数在左侧,偶数在右侧
static void Main(string[] args)
{
int[] a = { 1, 5, 3, 6, 9, 8, 4 };
List<int> listji = new List<int>();
List<int> listou = new List<int>();
for(int i = 0;i<a.Length;i++)
{
if(a[i]%2==0)
{
listou.Add(a[i]);
}
else
{
listji.Add(a[i]);
}
}
List<int> listSum = new List<int>();
listSum.AddRange(listji);
listSum.AddRange(listou);
for(int i=0;i<listSum.Count;i++)
{
Console.Write(listSum[i]);
}
Console.ReadKey();
}
由于集合本身可以另一个集合,因此可以不用再声明另一个集合来存放奇数集合和偶数集合,可以将偶数集合添加到奇数集合,最后输出奇数集合即可
static void Main(string[] args)
{
int[] a = { 1, 5, 3, 6, 9, 8, 4 };
List<int> listji = new List<int>();
List<int> listou = new List<int>();
for(int i = 0;i<a.Length;i++)
{
if(a[i]%2==0)
{
listou.Add(a[i]);
}
else
{
listji.Add(a[i]);
}
}
listji.AddRange(listou);
for(int i=0;i<listji.Count;i++)
{
Console.Write(listji[i]);
}
Console.ReadKey();
}
3.2 练习二
让用户输入一个字符串,使用foreach循环赋值给一个char数组
static void Main(string[] args)
{
Console.WriteLine("请输入一个字符串");
string input = Console.ReadLine();
char[] chs = new char[input.Length];
int i = 0;
foreach(var item in input)
{
chs[i] = item;
i++;
}
foreach (var item in chs)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
3.3 练习三
统计Welcome to China中每个字符出现的次数,不考虑大小写
static void Main(string[] args)
{
string str = "Welcome to China";
Dictionary<char, int> dic = new Dictionary<char, int>();
for (int i = 0; i < str.Length; i++)
{
if(str[i]==' ')
{
continue;
}
if(!dic.ContainsKey(str[i]))
{
dic.Add(str[i], 1);
}
else
{
dic[str[i]]++;
}
}
foreach(KeyValuePair<char,int> kv in dic )
{
Console.WriteLine("字符{0}出现了{1}次", kv.Key, kv.Value);
}
Console.ReadKey();
}