将List 中的ConvertAll的使用:List 中的元素转换,List模型转换, list模型转数组...

一,我们了解下,list的工作原理

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //list:原理也是数组机制,集合的容量
            List<int> il = new List<int>();
            Console.WriteLine(il.Capacity);   // 在初始化是容量默认为0
            for (int i = 0; i < 4; i++)
            {
                il.Add(i);
            }
            Console.WriteLine(il.Capacity); // 当第一次赋值的,容量为4
            for (int i = 0; i < 1; i++)
            {
                il.Add(i);
            }
            Console.WriteLine(il.Capacity);   // 当超越4时的,容量为4*2,以后以此类推

            //list:原理也是数组机制,当在一开始赋值容量,超过则是根据你赋值的乘以2来增加容量
            //这如果在初始化给List确定的容量,而不会出现容量增加,数组赋值到另一个数组的情况,适当list效率
            List<int> il2 = new List<int>(3);
            for (int i = 0; i < 5; i++)
            {
                il2.Add(i);   
            }
            Console.WriteLine(il2.Capacity);   // //输出6
            il2.Sort();
            Console.ReadKey();
        }
    }
}

综上总结:

1》List原理也是数组机制

2》List在初始化是容量默认为0,第一次扩容默认增加4,以后均已乘以2增长,在容量增加的同时,将就得数组数据复制到新的数组

3》你也可以在构造给list赋初始值,当在一开始赋值容量,超过则是根据你赋值的乘以2(3*2=6)来增加容量

4》如果在初始化给List确定的容量,而不会出现容量增加,旧数组复制值到另新数组的情况,提高list效率

二,转换代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class ListDemo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //将当前 List 中的元素转换为另一种类型,并返回包含转换后的元素的列表
        List<string> ls = new List<string>() { "1", "2", "3" };
        List<int> li = ls.ConvertAll<int>(i => int.Parse(i));
        var li2 = ls.Select(i => int.Parse(i));

        //list模型转换
        Test t = new Test();
        t.a = 1;
        t.b = "45";
        List<Test> lt = new List<Test>();
        lt.Add(t);
        lt.Add(t);
        lt.Add(t);
        List<Test2> lst = lt.ConvertAll(x => new Test2
        {
            c = x.a.ToString(),
            d = x.b
        });

        //list模型转数组
        var ToSZ = String.Join(",", lt.ConvertAll(u => u.a).ToArray());

        //list转object数组
        List<Object> m = lt.ConvertAll(s => (object)s);
    }
    public class Test
    {
        public int a { get; set; }
        public string b { get; set; }
    }
    public class Test2
    {
        public string c { get; set; }
        public string d { get; set; }
    }
}

 

什么是泛型缓存和静态构造函数?

转载于:https://www.cnblogs.com/May-day/p/6277369.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值