【问题标题】:Using LINQ how do I create a List of one particular field of an entity from a collection entities使用 LINQ 如何从集合实体中创建实体的一个特定字段的列表
【发布时间】:2012-05-14 13:32:38
【问题描述】:

如果我有以下收藏

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

谢谢

【问题讨论】:

  • listOfProviders.Select(x=&gt;x.Code).ToList()

标签: c# linq list lambda


【解决方案1】:

使用Enumerable.SelectEnumerable.ToList

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

【讨论】:

    【解决方案2】:

    您可以调用Select() 方法仅提取您需要的属性。然后调用ToList()进行投射。

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        我喜欢使用 ConvertAll

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多