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。如果项是值类型,则必须在将其添加到列表中时进行装箱操作,在检索时进行取消装箱操作。强制转换以及装箱和取消装箱操作都会降低性能;在必须对大型集合进行循环访问的情况下,装箱和取消装箱的影响非常明显。”     

原文地址:https://www.cnblogs.com/bison1989/p/1979394.html