一,我们了解下,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. CSS知识点:选择符

    一.选择符的种类 1)通配选择符 它用来给页面所有的元素设置样式 *{margin:0;padding:0;}.但是实际当中不建议这么用,页面中用到了哪些样式,就统一设置样式,因为*影响性能.也可以给 ...

  2. Python装饰器学习

    Python装饰器学习(九步入门)   这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 ? 1 2 3 4 5 6 7 8 # -*- ...

  3. 反射导出excel案例

    1.代码案例: protected void btnExportExcel_Click(object sender, EventArgs e) { SetSearchValue(); Dictiona ...

  4. 在GridView的中有一个DropDownList,并且DropDownList有回传事件

    在GridView的中有一个DropDownList,并且DropDownList有回传事件 最近做一个项目,需要在GridView中的ItemTemplate中添加一个DropDownList,并且 ...

  5. iOS基础 - 第三方网络框架

    一.iOS网络层次结构 基于iOS提供API实现上传文件和断点续传的思路 常用iOS第三方网路框架简介 AFNetworking(AFN) ASIHTTPRequest(ASI) 另外一个常用框架 S ...

  6. POJ 2337 输出欧拉路径

    太无语了. 这道题做了一整天. 主要还是我太弱了. 以后这个就当输出欧拉路径的模版吧. 题目中的输出字典序最小我有点搞不清楚,看了别人是这么写的.但是我发现我过不了后面DISCUSS里面的数据. 题意 ...

  7. fancybox关闭弹出窗口parent.$.fancybox.close();

    fancybox弹出窗口右上角会自带一个关闭窗口,并且点击遮罩层也会关闭fancybox 有时我们不需要这样进行关闭,隐藏关闭窗口,并且遮罩层不可点击 在弹出窗口页面加一链接进行关闭使用parent. ...

  8. synchronized简介

    synchronized简介 Java提供了一种内置的锁机制来支持原子性:同步代码块(Synchronized Block).同步代码块包括两部分:一个作为锁对象的引用,一个作为由这个锁保护的代码块. ...

  9. easyui 通用的datagrid中如何带有查询条件分页

    html 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  10. 在多线程中进行UI操作--ios学习笔记

    iOS 上不建议在非主线程进行UI操作,在非主线程进行UI操作有很大几率会导致程序崩溃,或者出现预期之外的效果. 我开始不知道这一点,在子线程中进行了弹窗操作,结果程序就出问题了! 报的错误是(EXC ...