zoukankan      html  css  js  c++  java
  • C# List<T>的用法与意义

           static void Main(string[] args)
            {

                Console.WriteLine("请输入第一个字符串");
                string str1 = Console.ReadLine();
                Console.WriteLine("请输入第二个字符串");
                string str2= Console.ReadLine();

                foreach (string str in strConnect(str1, str2))
                {
                    Console.WriteLine(str);
                }
            }

            private List<string> strConnect(string a,string b)
            {
                string ab = a + b;
                string ba = b + a;
                string aa = a + a;
                string bb = b + b;
                List<string> list = new List<string>();
                list.Add(ab);
                list.Add(ba);
                list.Add(aa);
                list.Add(bb);
                return list;
            }

           从用法上来讲,List<T>相当于一个不确定类型的数组。具体的类型T根据自己的需要进行设置,比如说List<string>就相当于string[],而List<int>就相当于int[]。

           至于为什么要用泛型:List<T>原因亦即其好处就是以下这些。

                1。避免了强制类型转换而造成代码可读性差。
                2。既然有了类型强制转换,问题来了:类型强制转换可能会用到装箱和拆箱过程,耗时。
                3。再由于有强制类型转换,在编译的时候可能不会包错,但是运行代码的时候有可能会因为转换失败而出现错误。这就是我们说的非安全代码。

                简单来说,泛型就是限制了操作类型。


          用微软的话讲:“添加到 ArrayList 中的任何引用或值类型都将隐式地向上强制转换为 Object。如果项是值类型,则必须在将其添加到列表中时进行装箱操作,在检索时进行取消装箱操作。强制转换以及装箱和取消装箱操作都会降低性能;在必须对大型集合进行循环访问的情况下,装箱和取消装箱的影响非常明显。”     

  • 相关阅读:
    OC-数组类
    OC-字符串函数
    C——位操作
    C——字符串练习
    C语言——指针习题
    指针数组和数组指针
    数组指针和指针数组的区别
    cocos2d-iphone中兼容iphone/ipad的问题
    一个Universal程序还是iPhone、iPad俩个版本 ?
    objective-c获取自1970年以来的毫秒数
  • 原文地址:https://www.cnblogs.com/bison1989/p/1979394.html
Copyright © 2011-2022 走看看