已被阅读 1815 次 | 文章分类:csharp | 2020-02-22 23:39
在c#中泛型集合是的用非常方便和普遍,减少了装箱与拆箱操作,使用相对灵活
一:list泛型的基本创建方式
list泛型集合的基本创建语句:List<类型> 集合名 = new List<类型>();其中的类型可以是int、string或者class等等
创建空的list集合
List<int> intList = new List<int>();
List<string> stringList = new List<string>();
List<user> userlist = new List<user>();
创建有初始值的list集合
List<int> intList = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<string> stringList = new List<string>() { "1","2","3"};
List<user> userlist = new List<user>() {
new user{
username = "张三",
password = "zhangsan"
},
new user{
username = "李四",
password = "lisi"
},
new user{
username = "王五",
password = "wangwu"
}};
其中user类是我们自定义的一个class,定义如下
public class user
{
public string username;
public string password;
public string age;
}
如果是空list集合的话,可以通过list集合对象的add方法添加
List<int> intList = new List<int>() { };
intList.Add(1);
List<string> stringList = new List<string>() ;
stringList.Add("1");
List<user> userlist = new List<user>() { };
user user1 = new user
{
username = "张三",
password = "zhangsan"
};
userlist.Add(user1);
二:list泛型集合常用方法
list集合对象经常会用到的一些方法如下
(1)添加单个元素:列表名.Add(所添加元素);
(2)添加多个元素:列表名.AddRange(所添加元素的数组名);
(3)插入一个元素:列表名.Insert(参数一:插入位置,参数二:所要插入的元素); //插入位置从1开始 //可以用foreach 遍历
(4)插入一组元素:列表名.InsertRang(参数一:插入位置,数组);
(5)删除一个元素:列表名.Remove(元素); //注意若有多个同值元素,仅删除第一个
(6)通过下标删除一个元素: 列表名.RemoveAt(元素下标);
(7)通过下标删除多个元素:列表名.RemoveRange(参数一:从哪开始,参数二:个数)
(8)列表可以用 列表名[下标] 进行调用元素,而哈希集合不能。
(9)判断某个元素是否在列表中:列表名.Contains(元素);
(10)给列表中元素按首字母排序:升:列表名.Sort(); 逆序:列表名.Reverse(); //不是降
(11)清空列表中所有元素:列表名.Clear();
(12)获取列表中元素个数:列表名.Count();
(13)数字类型可进行最大,最小,求和,求平均值等数学运算。
(14)将列表元素复制到一个数组里:列表名.CopyTo(数组名);
(15)将列表元拷贝到一个数组里:数组名=列表名.ToArray();
三:list其他使用方法
1、Contains判断list是否包含某元素
List<int> intList = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var isContain = intList.Contains(10); //true
2、结合where和lamda表达式查询
List<user> userlist = new List<user>() {
new user{
username = "张三",
password = "zhangsan"
},
new user{
username = "李四",
password = "lisi"
},
new user{
username = "王五",
password = "wang"
},
new user{
username = "赵五六",
password = "zhao"
}};
// 单条件查询
var resultList = userlist.Where((u => u.username.Contains("五"))).ToList();
// 多条件查询
resultList = userlist.Where(a => a.username.Contains("王") || a.password.Contains("zhao")).ToList();
resultList = userlist.Where(a => a.username.Contains("五") && a.password.Contains("wang")).ToList();
3、list.ForEach()可以遍历对每一个元素编辑并返回
userlist.ForEach(u =>
{
// 将每个人年龄+10
u.age = u.age + 10;
});
QQ:3410192267 | 技术支持 微信:popstarqqsmall
Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号