将IEnumerable转换为属性列表

时间:2013-09-05 18:59:05

标签: c# linq list properties ienumerable

假设我有一个名为Event的课程:

public class Event
{
    public virtual int Id { get; set; }
    public virtual string Title { get; set; }
    public virtual string Description { get; set; }
}

并提出以下问题:

var events = _eventInformationRepository.Fetch(e => e.Id != -1);

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

1 个答案:

答案 0 :(得分:11)

只需使用Linq Select方法:

var events = ...
var eventIDs = events.Select(e => e.Id);

这将返回IEnumerable<int>,这对于大多数用途来说应该足够了。但是,如果您真的需要List<int>,则可以调用ToList方法:

var eventIDs = events.Select(e => e.Id).ToList();