C#入门及进阶|数组和集合(十四):使用泛型

        使用泛型可以定义泛型类、泛型接口、泛型方法等。在System.Collections.Generic命名空间中包含几个泛型集合类,List<T>和Dictionary<K,V>是其中非常重要的两种。本节主要学习这些系统提供的泛型集合的用法。

        泛型最重要的应用就是集合操作,使用泛型集合可以提高代码重用性、类型安全和更佳的性能。List<T>的用法和ArrayList很相似,List<T>有更好的类型安全性,无须拆、装箱。定义一个List<T>泛型集合的语法如下:

List<T> 集合名=new List<T>();

        泛型定义中,泛型类型参数"<T>"是必须指定的,其中的T是定义泛型类时的占位符,其并不是一种类型,仅代表某种可能的类型。在定义时T会被使用的类型代替。泛型集合List<T>中只能有一个参数类型,"<T>"中的T可以对集合中的元素类型进行约束。

        注意:泛型集合必须实例化,实例化时和普通类实例化时相同,必须在后面加上"()"。

        List<T>的添加、删除和检索等方法和ArrayList相似,但是不需要像ArrayList那样装箱和拆箱。示例如下:

List<string> ls = new List<string>();//创建泛型集合ls
ls.Add(“C罗"); //向泛型集合ls中添加元素
ls.Add(“姆巴佩"); //向泛型集合ls中添加元素
ls.Add(“哈兰德"); //向泛型集合ls中添加元素

        List类综合应用实例:

public static void Main()
{
    List<string> clubs = new List<string>();
    clubs.Add("皇马");
    clubs.Add("巴萨saurus");
    clubs.Add("拜仁");
    clubs.Add("国米saurus");
    clubs.Add("米兰");
    clubs.Add("尤文");
    clubs.Add("曼联");
    clubs.Add("切尔西");
    clubs.Add("利物浦");
foreach(string club in clubs)
{
    Console.WriteLine(club);
}
Console.WriteLine("\nTrueForAll(EndsWithSaurus): {0}",
    clubs.TrueForAll(EndsWithSaurus));
Console.WriteLine("\nFind(EndsWithSaurus): {0}",
    clubs.Find(EndsWithSaurus));
Console.WriteLine("\nFindLast(EndsWithSaurus): {0}",
    clubs.FindLast(EndsWithSaurus));
Console.WriteLine("\nFindAll(EndsWithSaurus):");
List<string> sublist = clubs.FindAll(EndsWithSaurus);
foreach(string club in sublist)
{
    Console.WriteLine(club);
}
Console.WriteLine("\n{0} elements removed by RemoveAll(EndsWithSaurus).",clubs.RemoveAll(EndsWithSaurus));
Console.WriteLine("\nList now contains:");
foreach(string club in clubs)
{
    Console.WriteLine(club);
}
Console.WriteLine("\nExists(EndsWithSaurus): {0}",
   clubs.Exists(EndsWithSaurus));
}
// Search predicate returns true if a string ends in"saurus".
private static bool EndsWithSaurus(String s)
{
    if ((s.Length > 5) &&(s.Substring(s.Length - 6).ToLower() == "saurus"))
    {
        return true;
    }
    else
    {
        return false;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值