您的位置:

ToList函数详解

一、ToList函数简介

ToList函数是C#中的方法,它可以将一个IEnumerable类型(包括Array、List、Dictionary等)的集合对象转化为一个List对象。

其使用方法为:IEnumerable类型的集合对象. ToList();

ToList函数的返回值为List 类型的对象,其中T表示集合中元素的数据类型。

二、ToList函数的用处

1、将IEnumerable类型的集合对象转化为List类型的对象,方便进行操作。


//例如
List
    list = new List
     { "a", "b", "c" };
IEnumerable
      ienumerable = list;
List
       newList = ienumerable.ToList();

      
     
    
   

2、在项目中获取数据库的数据,可以使用ToList将结果转化为List类型的对象,方便进行各种复杂的操作。


//例如
List
    orders = await _repo.GetOrdersAsync(); //从数据库中获取订单
List
     newOrders = orders.Where(x => x.Status == "New" && x.Owner == "Tom").ToList(); //筛选出状态为New,且所有者为Tom的订单
decimal totalPrice = newOrders.Sum(x => x.Price); //计算总价

    
   

3、ToList函数可以提高程序的性能,因为一些LINQ方法(如Where)会多次遍历集合,而使用ToList可以将集合转化为List类型的对象,相当于进行了一次遍历,提高了查询的效率。

三、ToList函数的注意事项

1、ToList函数是立即执行的,也就是说,它会立即将所有元素加载到内存中,因此,当集合对象中的数据量较大时,需要谨慎使用。

2、如果集合对象为空或null,使用ToList会报错,因此需要先进行判断。


//例如
IEnumerable
    ienumerable = null;
List
     newList = ienumerable?.ToList(); //使用?判断ienumerable是否为空,如果为空则返回null,不会报错

    
   

四、ToList函数的示例代码


List
    list = new List
     { "a", "b", "c" };
IEnumerable
      ienumerable = list;
List
       newList = ienumerable.ToList();

//或者

IEnumerable
       
        ienumerable = null; List
        
         newList = ienumerable?.ToList();