将IEnumerable转换为属性列表

Ani*_*ola 3 c# linq ienumerable properties list

假设我有一个名为Event的类:

public class Event
{
    public virtual int Id { get; set; }
    public virtual string Title { get; set; }
    public virtual string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

并有以下查询:

var events = _eventInformationRepository.Fetch(e => e.Id != -1);
Run Code Online (Sandbox Code Playgroud)

哪个返回一个IEnumerable<Event>.但我想创建一个事件ID列表.这可以通过ienum直接完成吗?或者我是否必须生成列表,迭代,分配和添加每个值?

p.s*_*w.g 11

只需使用Linq Select方法:

var events = ...
var eventIDs = events.Select(e => e.Id);
Run Code Online (Sandbox Code Playgroud)

这将返回一个IEnumerable<int>,这应该足以满足大多数目的.但是,如果你真的想要一个,List<int>你可以调用ToList方法:

var eventIDs = events.Select(e => e.Id).ToList();
Run Code Online (Sandbox Code Playgroud)