list使用例子(转)
例子:
在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使用例子(转)的更多相关文章
- SQLServer地址搜索性能优化例子
这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...
- REGEX例子
作为REGEX的例子,代码9.3显示了一个给定的文件有多少行,具有给定的模式,通过命令行输入(注:有更有效率的方式来实现这个功能,如Unix下的grep命令,在这里只是给出了另一种方式).这个程序像下 ...
- CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子
CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子 本文涉及的VolumeRendering相关的C#代码是从(https://github.com/toolchai ...
- 简单例子了解View的事件分发
什么是事件分发 我们在写自定义ViewGroup或者自定义View的时候经常要处理用户的点击事件,如果我们的View在最底层,他在很多ViewGroup里面,我们如何让我们的点击事件准确传递到View ...
- 简单的例子了解自定义ViewGroup(一)
在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...
- kqueue例子
网络服务器通常都使用epoll进行异步IO处理,而开发者通常使用mac,为了方便开发,我把自己的handy库移植到了mac平台上.移植过程中,网上居然没有搜到kqueue的使用例子,让我惊讶不已.为了 ...
- 今天有群友不是很清楚htm直接存数据库的危害,我简单举个例子
通过这个案例就知道为什么不要把原生的html放数据库了 常见的几种转码 常用的几种显示方法 只有原生html和最下面一种弹框了,变成了持久xss 如果是Ajax的方式,请用@Ajax.JavaS ...
- ElasticSearch 5学习(5)——第一个例子(很实用)
想要知道ElasticSearch是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...
- 以实际的WebGIS例子探讨Nginx的简单配置
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...
随机推荐
- MongoDB-安装&启动
MongoDB安装 使用的版本为3.0,虚拟机操作系统为rhel-server-7.0-x86_641. 将mongodb-linux-x86_64-rhel70-3.0.11.tgz上传并解压到 / ...
- 开启Tomcat 源码调试
开启Tomcat 源码调试 因为工作的原因,需要了解Tomcat整个架构是如何设计的,正如要使用Spring MVC进行Web开发,需要了解Spring是如何设计的一样,有哪些主要的类,分别是用于干什 ...
- 1---------java调用NLPIR(ICTCLAS2016)实现分词功能
备注:win7 64位系统,netbeans编程 NLPIR分词系统,前身是2000年发布的ICTCLAS,2009年更为现名.张华平博士打造. 实现步骤: 1.在Netbeans中,文件→新建项目→ ...
- background-position控制背景位置
提示:需要把 background-attachment 属性设置为 "fixed",才能保证该属性在 Firefox 和 Opera 中正常工作.
- BootStrap学习(2)
使用Bootstrap添加代码框 可先看:简介.引入.包下载等:http://www.cnblogs.com/0201zcr/p/4900062.html Bootstrap 允许您以两种方式显示代码 ...
- CentOS 6.3下配置iSCSI网络存储
一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...
- zookeeper 相关学习资料
zookeeper的配置:http://www.cnblogs.com/yuyijq/p/3438829.html zookeeper运维:http://blog.csdn.net/hengyunab ...
- [转]在EntityFramework6中执行SQL语句
本文转自:http://www.cnblogs.com/wujingtao/p/5412329.html 在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有 ...
- Codeforces Round #285 (Div.1 B & Div.2 D) Misha and Permutations Summation --二分+树状数组
题意:给出两个排列,求出每个排列在全排列的排行,相加,模上n!(全排列个数)得出一个数k,求出排行为k的排列. 解法:首先要得出定位方法,即知道某个排列是第几个排列.比如 (0, 1, 2), (0, ...
- 三维网格去噪算法(two-step framework)
基于两步法的网格去噪算法顾名思义包含两个步骤:首先对网格表面的法向进行滤波,得到调整后的网格法向信息,然后根据调整后的法向更新顶点坐标位置,下面介绍三篇该类型的文章. [Sun et al. 2007 ...