c# 中list泛型集合基本使用

已被阅读 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号