一,我们了解下,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 = ; i < ; i++)
{
il.Add(i);
}
Console.WriteLine(il.Capacity); // 当第一次赋值的,容量为4
for (int i = ; i < ; i++)
{
il.Add(i);
}
Console.WriteLine(il.Capacity); // 当超越4时的,容量为4*2,以后以此类推 //list:原理也是数组机制,当在一开始赋值容量,超过则是根据你赋值的乘以2来增加容量
//这如果在初始化给List确定的容量,而不会出现容量增加,数组赋值到另一个数组的情况,适当list效率
List<int> il2 = new List<int>();
for (int i = ; i < ; 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>() { "", "", "" };
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 = ;
t.b = "";
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; }
}
}

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

将List 中的ConvertAll的使用:List 中的元素转换,List模型转换, list模型转数组的更多相关文章

  1. Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器

    一.写在前面: 本次我们来讲解一下Android应用中三个适配器:BaseAdapter.SimpleAdapter和ArrayAdapter.其中常见的是BaseAdapter,也是个人推荐使用的适 ...

  2. 借助JavaScript中的Dom属性改变Html中Table边框的颜色

    借助JavaScript中的Dom属性改变Html中Table边框的颜色 -------------------- <html> <head> <title>我是页 ...

  3. 借助JavaScript中的时间函数改变Html中Table边框的颜色

    借助JavaScript中的时间函数改变Html中Table边框的颜色 <html> <head> <meta http-equiv="Content-Type ...

  4. Java中是否可以调用一个类中的main方法?

    前几天面试的时候,被问到在Java中是否可以调用一个类中的main方法?回来测试了下,答案是可以!代码如下: main1中调用main2的主方法 package org.fiu.test; impor ...

  5. linux 中部署ant编译的包中缺少问题

    今天遇到在window上部署ant编译的包,能运行正常,但部署在linux中出现跳不进jsp中,出现404问题,后来经过排查在jsp中<%@taglib prefix="c" ...

  6. 如何使用免费控件将Word表格中的数据导入到Excel中

    我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要 ...

  7. Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)

    今天重装系统,安装了新的Myeclipse后,导入之前的项目后,,出现了乱码问题.乱码问题主要是java类中的注释,而jsp页面中汉字却完好如初: 右键项目,查看项目的编码格式,UTF-8,把java ...

  8. Map java中的map 如何修改Map中的对应元素

    Map java中的map 如何修改Map中的对应元素 Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.         Map的接口         Map ...

  9. Java实现购物车功能:方式一:存放在session中.方式二:存储在数据库中

    //将购物车产品加入到cookie中,方式同浏览记录.Java实现购物车,方式一(简易版):存储在session中.这种方式实现还不严谨,大家看的时候看思路即可.(1). JSP页面中,选择某一款产品 ...

随机推荐

  1. bootstrap导航菜单,手机和PC端

    源代码 <!DOCTYPE html> <html> <head lang="en"> <meta name="viewport ...

  2. Oracle表介绍--簇表

    簇和簇表       簇其实就是一组表,是一组共享相同数据块的多个表组成. 将经常一起使用的表组合在一起成簇可以提高处理效率.       在一个簇中的表就叫做簇表.建立顺序是:簇→簇表→数据→簇索引 ...

  3. ASP.NET MVC项目里创建一个aspx视图

    先从控制器里添加视图 视图引擎选"ASPX(C#)",使用布局或模板页不要选. 在Views\EAV目录里,生成的aspx是个单独的页面,没有代码文件,所以代码也要写在这个文件里. ...

  4. Linux : fedora 安装 vnc server

    Linux配置VNC服务 安装VNC服务端 #yum install vnc-server 配置VNC服务参数文件 编辑vncservers文件追加如下 #vi /etc/sysconfig/vncs ...

  5. 快速创建InfoPath表单

    快速创建InfoPath表单 2010年已经过去了一半了,这时候再说初识InfoPath可能会被很多人笑话,但是又有多少人真正认识InfoPath呢?无论你是刚刚 听说这个东西还是它的老相好都请同我一 ...

  6. DSP TMS320C6000基础学习(4)—— cmd文件分析

    DSP中的CMD文件是链接命令文件(Linker Command File),以.cmd为后缀. 在分析cmd文件之前,必需先了解 (1)DSP具体芯片的内存映射(Memory Map) (2)知道点 ...

  7. h5 localStorage存储大小(转)

    摘要 HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 loca ...

  8. EntityFrame Work 5 性能注意事项(转自MSDN)

    1.简介 对象关系映射框架是一种在面向对象的应用程序中提供数据访问抽象的便捷方式.对于 .NET 应用程序,Microsoft 推荐的 O/RM 是实体框架.但任何抽象都要考虑性能. 本白皮书旨在介绍 ...

  9. asp.net mvc框架的一些切入点

    IhttpModule+配置文件,对请求进行进一步的整理.过滤与转发: global文件中以Application_xx的保护方法进行切入的方式,此方法等同于IHttpModule方法.IHttpMo ...

  10. c:forEach 实现换行

    Map<String,String> map = new TreeMap<String,String>(); map.put("key1", "v ...