Skip to content

C# 数组拆分(泛型)

约 360 字大约 1 分钟

NET

2019-01-16

主要用到了泛型。

语言编写语言编写语言编写语言编写语言编写语言编写语言编写语言编写语言编写语言编写语言编写语言编写语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设,所以泛型提高了程序的类型安全。它允许程序员将一个实际的数据类型的规约延迟至泛型的实例被创建时才确定。泛型为开发者提供了一种高性能的编程方式,能够提高代码的重用性,并允许开发者编写非常优雅的解决方案。

public List<List<T>> SplitList<T>(List<T> list, int size)
        {
            List<List<T>> result = new List<List<T>>();
            for (int i = 0; i < list.Count() / size; i++)
            {
                T[] clist = new T[size];
                list.CopyTo(i * size, clist, 0, size);
                result.Add(clist.ToList());
            }
 
            int r = list.Count() % size;
            if (r != 0)
            {
                T[] cclist = new T[r];
                list.CopyTo(list.Count() - r, cclist, 0, r);
                result.Add(cclist.ToList());
            }
 
            return result;

原始数组:

img

拆分后:

img