使用 LINQ 如何从集合实体创建实体的一个特定字段的列表

本文关键字:实体 一个 列表 字段 集合 LINQ 使用 创建 | 更新日期: 2023-09-27 18:34:02

如果我有以下集合

IEnumerable<ProviderOrganisation> listOfProviders
public class ProviderOrganisation
{
    public virtual string Code { get; set; }
    public virtual string Description { get; set; }
    public virtual int SortOrder { get; set; }
    public virtual bool IsDefault { get; set; }
    public virtual DateTime EffectiveStartDate { get; set; }
    public virtual DateTime? EffectiveEndDate { get; set; }
}

请问我如何编写 LINQ 以生成仅包含代码的集合?

因此,只是一个代码列表:

List<string> listOfCodes

谢谢

使用 LINQ 如何从集合实体创建实体的一个特定字段的列表

使用 Enumerable.SelectEnumerable.ToList

List<String> listOfCodes = listOfProviders
                     .Select(p => p.Code)
                     .ToList();

可以调用 Select() 方法仅提取所需的属性。然后打电话给ToList()投。

listOfProviders.Select(p => p.Code).ToList();

在查询语法中,它看起来像这样:

List<string> listOfCodes = (from p in listOfProviders
                            select p.code).ToList();

我喜欢使用ConvertAll

List<string> listOfCodes = listOfProviders
                    .ToList()
                    .ConvertAll(x => x.Code);

一些测试表明,ConvertAll比当前接受的答案的方法略快! :)