4

如果我有以下收藏

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

谢谢

4

4 回答 4

5

使用Enumerable.SelectEnumerable.ToList

List<String> listOfCodes = listOfProviders
                     .Select(p => p.Code)
                     .ToList();
于 2012-05-14T13:34:19.030 回答
2

您可以调用该Select()方法仅提取您需要的属性。然后调用ToList()施放它。

listOfProviders.Select(p => p.Code).ToList();
于 2012-05-14T13:33:58.967 回答
0

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

List<string> listOfCodes = (from p in listOfProviders
                            select p.code).ToList();
于 2014-01-23T01:55:02.850 回答
0

我喜欢使用 ConvertAll

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

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

于 2015-02-26T13:22:26.953 回答