例子:

在vs2010中创建一个winform的解决方案,然后定义一个类Person,Person.cs 的代码如下:

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

namespace test
{
    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string six { get; set; }
        public DateTime Birthday { get; set; }
    }
}
然后拖入一个按纽,双击按纽,在里面添加的代码: 
List<Person> list = new List<Person>();
Person person = null;
for (int i = 0; i < 10; i++)
{
    person = new Person();
    person.Name = string.Format("xxxx{0}", i);
    person.Age = 20 + i;
    person.Birthday = DateTime.Now.AddDays(i);
    person.six = i % 2 == 0 ? "女" : "男";
    list.Add(person);
}
string serialStr = JsonConvert.SerializeObject(list);
List<Person> listperson = new List<Person>();
listperson = JsonConvert.DeserializeObject<List<Person>>(serialStr);
for (int i = 0; i < listperson.Count; i++)
{
    MessageBox.Show(listperson[i].Name);
}

以上就是一个简单的List<T>的用法实例。

C# List<T>用法
所属命名空间:using System.Collections.Generic;

List<T>类是  ArrayList 类的泛型等效类。 该类使用大小可按需动态增加的数组实现  IList<T> 泛型接口。

泛型的好处: 它为使用 c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。

一、  List的基础、常用方法:

1、List<T> mList = new List<T>();    
    a.T为列表中元素类型,现在以string类型作为例子
        如:  List<string> mList = new List<string>();

b.增加元素:List. Add(T item)    添加一个元素
        如:mList.Add("赖炎滨");

c.插入元素:Insert(int index, T item);    在index位置添加一个元素
        如:mList.Insert(1, "laiyanbin");

d.删除元素:  List. Remove(T item)       删除一个值
                如:mList.Remove("赖炎滨");

List. RemoveAt(int index);   删除下标为index的元素

如.:mList.RemoveAt(0);

List. RemoveRange(int index, int count);   从下标index开始,删除count个元素
                如.:mList.RemoveRange(3, 2); //超出删除的范围会出错
    注:删除某元素后,其后面的元素下标自动跟进

e.判断是否存在List:List. Contains(T item)   得到的结果是返回true或false

f.排序:List. Sort ()   //默认是元素第一个字母按升序

给List里面元素顺序反转:
           List. Reverse ()   //可以与List. Sort ()配合使用,达到想要的效果

遍历List中元素:   
   foreach (T element in mList)  T的类型与mList声明时一样
            {
                 Console.WriteLine(element);
            }

g.List清空:List. Clear ()
           如:mList.Clear();

h.获得List中元素数目:
           List. Count ()    返回int值

i.添加数组进List:string[] temArr = { Ha","Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", " "Locu" };
            mList.AddRange(temArr);

2、List<T> testList =new List<T> (IEnumerable<T> collection);
      以一个集合作为参数创建List
       E.g.: string[] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu" };
                  List<string> testList = new List<string>(temArr);

3、List与数组的相互转换
1.从string[]转List<string>
例如:string[] str={“1”,”2”};
List <string> list=new List<string>(str);
2.从List<string>转string[]

例如:List<string> list=new List<string>;
String[] str=list.ToArray();

//ViewState["idlist"]转换成List<>

List<int> idlist=(List<int>)ViewState["idlist"]

list使用例子(转)的更多相关文章

  1. SQLServer地址搜索性能优化例子

    这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...

  2. C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

    第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...

  3. REGEX例子

    作为REGEX的例子,代码9.3显示了一个给定的文件有多少行,具有给定的模式,通过命令行输入(注:有更有效率的方式来实现这个功能,如Unix下的grep命令,在这里只是给出了另一种方式).这个程序像下 ...

  4. CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子

    CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子 本文涉及的VolumeRendering相关的C#代码是从(https://github.com/toolchai ...

  5. 简单例子了解View的事件分发

    什么是事件分发 我们在写自定义ViewGroup或者自定义View的时候经常要处理用户的点击事件,如果我们的View在最底层,他在很多ViewGroup里面,我们如何让我们的点击事件准确传递到View ...

  6. 简单的例子了解自定义ViewGroup(一)

    在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...

  7. kqueue例子

    网络服务器通常都使用epoll进行异步IO处理,而开发者通常使用mac,为了方便开发,我把自己的handy库移植到了mac平台上.移植过程中,网上居然没有搜到kqueue的使用例子,让我惊讶不已.为了 ...

  8. 今天有群友不是很清楚htm直接存数据库的危害,我简单举个例子

     通过这个案例就知道为什么不要把原生的html放数据库了  常见的几种转码  常用的几种显示方法 只有原生html和最下面一种弹框了,变成了持久xss 如果是Ajax的方式,请用@Ajax.JavaS ...

  9. ElasticSearch 5学习(5)——第一个例子(很实用)

    想要知道ElasticSearch是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...

  10. 以实际的WebGIS例子探讨Nginx的简单配置

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...

随机推荐

  1. java.lang.IllegalStateException:Web app root system property already set to different value 错误原因及解决 Log4j

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口 服务器.NT的事件记录器.UNIX Syslog守护进程等: ...

  2. java获取当前星期几

    //获取当前星期几Calendar calendar;calendar = Calendar.getInstance();System.out.println(calendar);System.out ...

  3. Cloud9:解决ThinkPHP在C9上运行时连接数据库时报错"No such file or directory"的问题

    昨天尝试在c9上部署了一个ThinkPHP用于开发,但是当试图连接数据库时却出现了这样的问题.经过查找资料发现此问题是由于没有找到mysql.sock这个文件造成的(这个东西估计是mysql的连接线程 ...

  4. SQL Server 2012 学习笔记5

    1. 索引(Index) 索引是快速的定位和查找数据.索引分为: 聚集索引:唯一,默认主键,一般选取比较连贯的字段,聚集索引是物理排序. 非聚集索引: 并没有把数据物理排序,只是多了一个索引页(包括索 ...

  5. 002.ICMP--拼接ICMP包,实现简单Ping程序(原始套接字)

    一.大致流程: 将ICMP头和时间数据设置好后,通过创建好的原始套接字socket发出去.目的主机计算效验和后会将数据原样返回,用当前时间和返回的数据结算时间差,计算出rtt. 二.数据结构: ICM ...

  6. Eclipse汉化后怎么改回英文版(可切换中英文)

    Eclipse汉化后怎么改回英文版(可切换中英文) 很多朋友将MyEclipse汉化后还想改回英文的,其实只要修改MyEclipse的配置文件就可以了,这里我以MyEclipse7.0为例演示一下如何 ...

  7. SpringMVC总结帖

    SpringMVC是基于MVC设计理念的一款优秀的Web框架,是目前最流行的MVC框架之一,SpringMVC通过一套注解,让POPJ成为处理请求的控制器,而无需实现任何接口,然后使用实现接口的控制器 ...

  8. DPM(voc-release5) Matlab模型文件 Mat转XML

    (转载请注明作者和出处 楼燚(yì)航的blog :http://www.cnblogs.com/louyihang loves baiyan/ 未经允许请勿用于商业用途) 由于目前DPM模型训练的代 ...

  9. SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)(转)

    使用 SSM ( Spring . SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没 ...

  10. VIJOS P1037搭建双塔[DP]

    描述 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难.为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔. Mr. F有N块水晶,每块 ...