这两天上课正好学泛型和ArrayList之间的区别,在家看了看深入理解和李志的学习笔记,感觉泛型内容很多,在深入理解中就占了三四十页,目前小懂的一些方法与大家分享~后续学习深入我还会补充
首先介绍一个List<T>的方法 AsReadOnly() 此方法返回的是一个只读接口,实例:
List<int> num = new List<int>();//首先创建一个泛型集合
num.Add(1);//给集合中属性赋值
...省略
IList<int> bb = num.AsReadOnly();//这个方法代表返回一个ILis<T>t只读接口
// bb.Add(10); 顾名思义只读数据就是只能读,不能写。所以这行代码是错误的
for (int x = 0; x < num.Count; x++)
{
Console.WriteLine(bb[x]);
}
/*输出
*1
*2
*3
*4
*5
*/
其中的一个方法 Count返回的是int类型的数据,该方法给出集合中项的个数,实例:
List<int> num = new List<int>();//首先创建一个泛型集合
num.Add(1);//给集合中属性赋值
num.Add(2);
num.Add(3);
num.Add(4);
num.Add(5);
Console.WriteLine(num.Count); //返回的是int类型的参数,该属性给出集合中项的个数
//打印结果 5
其中的一个方法RemoveAt返回的是void类型的数据,该方法从结合中删除索引index处的项(自定义角标)
List<int> num = new List<int>();//首先创建一个泛型集合
num.Add(1);//给集合中属性赋值
num.Add(2);
num.Add(3);
num.Add(4);
num.Add(5);
num.RemoveAt(0);//返回值void 会从集合中删除编号(角标)为0的项
for (int x = 0; x < num.Count; x++)
{
Console.WriteLine(num[x]);//打印结果 2 3 4 5
}
其中的一个方法Insert返回的是void类型的数据,该方法把值插入到集合指定的索引位置上
List<int> num = new List<int>();//首先创建一个泛型集合
num.Add(1);//给集合中属性赋值
num.Add(2);
num.Add(3);
num.Add(4);
num.Add(5);
num.Insert(3,666);//返回的是void类型,这句代码意思就是把666插入角标为3的位置,其他元素依次自动重新排序顺移
//结果 1 2 3 666 4 5
for (int x = 0; x < num.Count; x++)
{
Console.WriteLine(num[x]);//打印结果 2 3 4 5
}
其中的一个方法CopyTo返回的是void类型的数据,该方法把集合中的项复制到数组nums中,从数组的0角标开始复制
int[] nums = new int[5];//创建数组
List<int> num = new List<int>();//首先创建一个泛型集合
num.Add(1);//给集合中属性赋值
num.Add(2);
num.Add(3);
num.Add(4);
num.Add(5);
num.CopyTo(nums, 0);//该方法返回值类型为void,把集合中的项复制到数组nums中,从数组的0角标开始复制
for (int x = 0; x < nums.Length; x++)
{
Console.WriteLine("数组:" + nums[x]);//打印结果 数组:1 数组:2 ... 数组:5
}
for (int x = 0; x < num.Count; x++)
{
Console.WriteLine(num[x]);//打印结果 1 2 3 4 5
}
...未完待续