使用 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
谢谢
使用 Enumerable.Select
和 Enumerable.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比当前接受的答案的方法略快! :)