Freely convert between List and IEnumerable

前端 未结 6 959
逝去的感伤
逝去的感伤 2020-12-04 08:21

How can I convert a List to an IEnumerable and then back again?

I want to do this in order to run a series

6条回答
  •  南方客
    南方客 (楼主)
    2020-12-04 08:41

    Converting List to IEnumerable

    List implements IEnumerable (and many other such as IList, ICollection) therefore there is no need to convert a List back to IEnumerable since it already a IEnumerable.

    Example:

    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
    
    Person person1 = new Person() { Id = 1, Name = "Person 1" };
    Person person2 = new Person() { Id = 2, Name = "Person 2" };
    Person person3 = new Person() { Id = 3, Name = "Person 3" };
    
    List people = new List() { person1, person2, person3 };
    
    //Converting to an IEnumerable
    IEnumerable IEnumerableList = people;
    

    You can also use Enumerable.AsEnumerable() method

    IEnumerable iPersonList = people.AsEnumerable();
    

    Converting IEnumerable to List

    IEnumerable OriginallyIEnumerable = new List() { person1, person2 };
    List convertToList = OriginallyIEnumerable.ToList();
    

    This is useful in Entity Framework.

提交回复
热议问题