在LINQ中选择多个列

时间:2012-08-10 09:58:21

标签: asp.net-mvc-3 model-view-controller

我编写了一个LINQ查询,如下所示:

List<Actions> actions = resourceActions.Actions.Select(s => s.ActionName).ToList();

如何在此处选择多列?即我想添加列s.ActionId和s.IsActive。我无法申请

3 个答案:

答案 0 :(得分:11)

创建一个类来表示您想要的数据:

public class ResourceAction
{
   public int Id {get;set;}
   public string Name {get; set; }
}

选择一个列表:

List<ResourceAction> actions = resourceActions.Actions
  .Select(s => new ResourceAction() { Id = s.Id, Name = s.ActionName}).ToList();

答案 1 :(得分:2)

我相信这就是你要找的东西。但是,您需要将输出更改为匿名类型。

var actions = resourceActions.Actions.Select(s => new { s.ActionName, s.ActionId, s.IsActive } ).ToList();

答案 2 :(得分:2)

您可以使用匿名类型,例如

var actions = resourceActions.Actions.Select(s => 
    new { Id = s.Id, Name = s.ActionName, Active = s.IsActive).ToList();

但更好的方法是创建一个类

public class ActionWithId
{
   public int Id { get; set; }
   public string Name { get; set; }
   public bool Active { get; set; }
}

List<ActionWithId> actions = resourceActions.Actions.Select(s => 
    new ActionWithId() { Id = s.Id, Name = s.ActionName, Active = s.IsActive }).ToList();