a、List<>泛型集合
复制代码 代码如下:
View Code
using System;
using System.Collections.Generic;
namespace _02_泛型集合 {
class Person {
public Person(string name, int age) {
this .name = name;
this .age = age;
}
private string name;
public string Name {
get {
return name;
}
set {
name = value ;
}
}
private int age;
public int Age {
get {
return age;
}
set {
age = value ;
}
}
}
class Student : Person {
public Student(string name, int age)
: base (name, age) {
}
}
class Teacher : Person {
public Teacher(string name, int age)
: base (name, age) {
}
}
class Program {
static void Main( string[] args) {
Student xyy = new Student( "小月月" , 12);
Student fj = new Student( "凤姐" , 14);
Student fr = new Student( "芙蓉姐姐" , 16);
Student xl = new Student( "犀利哥" , 18);
List <Student > student = new List <Student >();
student.Add(xyy);
student.Add(fj);
student.Add(fr);
student.Add(xl);
Teacher tea = new Teacher( "wanghao" , 21);
//student.Add(tea);//因为List<Student> 限制类型必须为Student 所以不能添加Teacher对象
//比ArrayList更加限制存储的类型 而且效率要高 因为添加 取出对象是不会发生装箱 拆箱的操作的
//遍历
foreach (Student item in student) {
Console .WriteLine(item.Name);//因为返回的就是student对象 所以可以直接读取属性值
Console .WriteLine(item.Age);
}
//移除
student.Remove(xyy); //移除的是引用地址 所以下面移除的s不是xyy
Student s = new Student( "小月月" , 12);
student.Remove(s);
student.RemoveAt(0);
student.RemoveRange(0, 2); //从0索引移除后面两位 即前移除前两位学生 xyy fj
//student.RemoveAll();//移除所有满足条件的 详见帮助文档
student.Clear();
Console .WriteLine(student.Contains(xyy));
//ToArray()方法 转换学生类型数组
Student [] stu = student.ToArray();
foreach (Student item in stu) {
Console .WriteLine(item.Name);
}
Console .Read();
}
}
}
b、Dictonary<>字典
复制代码 代码如下:
View Code
using System;
using System.Collections.Generic;
namespace _03_泛型集合 {
class Student {
public Student(string name, int age) {
this .name = name;
this .age = age;
}
private string name;
public string Name {
get {
return name;
}
set {
name = value ;
}
}
private int age;
public int Age {
get {
return age;
}
set {
age = value ;
}
}
}
class Program {
static void Main( string[] args) {
Student xyy = new Student( "小月月" , 12);
Student fj = new Student( "凤姐" , 14);
Student fr = new Student( "芙蓉姐姐" , 16);
Student xl = new Student( "犀利哥" , 18);
Dictionary <string , Student> student = new Dictionary < string, Student >();//key为string类型的name value为Student对象
student.Add( "小月月" , xyy);
student.Add( "凤姐" , fj);
student.Add( "芙蓉姐姐" , fr);
student.Add( "犀利哥" , xl);
Console .WriteLine(student["犀利哥" ].Name); //根据key获取value
//遍历 通过key
foreach (string item in student.Keys) {
Console .WriteLine(item);
Console .WriteLine(student[item].Age);
}
//遍历 通过value
foreach (Student item in student.Values) {
Console .WriteLine(item.Age);
}
//遍历键值对
foreach (KeyValuePair < string, Student > item in student) {
Console .WriteLine(item.Key);
Console .WriteLine(item.Value.Age);//item.Value是Student对象 直接使用
}
//移除
//student.Remove("小月月");
//student.Clear();
student.ContainsKey( "小月月" ); //是否包含该key
//更多参见帮助文档
Console .Read();
}
}
}
c、泛型集合练习
复制代码 代码如下:
View Code
using System;
using System.Collections.Generic;
namespace _04__泛型练习 {
class Program {
static void Main( string[] args) {
//把分拣奇偶数的程序用泛型实现
string str = "7 4 3 2 9 8 33 22" ;
string [] strs = str.Split(' ' );
strs = Getevent(strs).ToArray();
string res = string .Join( " ", strs); //string数组 直接用join就好了
Console .WriteLine(res);
//将int数组中的奇数放到一个新的int数组中返回
int [] intarr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
List <int > list = new List <int >();
foreach (int item in intarr) {
if (item % 2 != 0) {
list.Add(item);
}
}
intarr = list.ToArray();
foreach (int item in intarr) {
Console .WriteLine(item);
}
//从一个整数的List<int>中取出最大数。不使用自身带的Max()方法。
List <int > list2 = new List <int > { 1, 2, 3, 4, 5, 6, 7, 8 };
int max = list2[0];
foreach (int item in list2) {
if (item > max) {
max = item;
}
}
Console .WriteLine("泛型集合最大值为{0}" , max);
Console .ReadKey();
}
public static List< string > Getevent(string [] str) {
List <string > list = new List <string >();
List <string > list2 = new List <string >();
foreach (string item in str) {
if (int .Parse(item) % 2 != 0) {
list.Add(item);
} else {
list2.Add(item);
}
}
list.AddRange(list2);
return list;
}
}
}
d、泛型集合练习2
复制代码 代码如下: