将 IEnumerable 转换为属性列表

本文关键字:属性 列表 转换 IEnumerable | 更新日期: 2023-09-27 18:30:16

假设我有一个名为 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 完成吗?还是我必须生成列表、迭代、分配和添加每个值?

将 IEnumerable 转换为属性列表

只需使用 Linq Select 方法:

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

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

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