一,我们了解下,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. 我的Android 4 学习系列之数据库和Content Provider

    目录 创建数据库和使用SQLite 使用Content Provider.Cusor和Content Value来存储.共享和使用应用程序数据 使用Cursor Loader异步查询Content P ...

  2. 在希望的田野上--生物柴油(Biodiesel)光明的未来

    请看下图: 这是科学家Bernie Tao教授给美国Purdue大学的学生们出的题目"有关大豆.谷物产品的创新竞赛",实质上,就是鼓舞研究.开发及应用生物柴油(Biodiesel) ...

  3. iOS基础 - 瀑布流

    一.瀑布流简介 瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.最早采用此布局的网站是Pint ...

  4. linux 之 getopt_long()

    文件 #include <getopt.h> 函数原型 int getopt_long(int argc, char * const argv[], const char *optstri ...

  5. Linux环境进程间通信(二):信号(下)

    linux下进程间通信的几种主要手段: 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允 ...

  6. 【转载】Stack Overflow: The Architecture - 2016 Edition

    转载:http://www.infoq.com/cn/news/2016/03/Stack-Overflow-architecture-insi?utm_source=tuicool&utm_ ...

  7. SP2-1503: 无法初始化 Oracle 调用界面

    问题描述: win7下,cmd运行 输入sqlplus报一下错误 SP2-1503: 无法初始化 Oracle 调用界面 SP2-0152: ORACLE 不能正常工作 解决办法 1.cmd右键--以 ...

  8. 第一个python

    import MySQLdb import os,sys import string dto=os.getcwd()+"\\dto" dao=os.getcwd()+"\ ...

  9. BizTalk 2010/2013 EDI B2B

    BizTalk 2010/2013 EDI B2B项目实践(1)   BizTalk 2010/2013 EDI B2B项目实践(1) BizTalk开发标准EDI B2B是件非常容易的事情,但对于初 ...

  10. 开发win8 metro monogame,显示pubcenter广告时会使游戏卡住的问题的解决方法。

    开发win8 metro游戏,使用monogame,并且还加上pubcenter广告,但是在x64的机子上遇到了问题,广告一出,游戏卡死.经过一系列的判断,发现monogame一直在update和dr ...