【问题标题】:Select multiple columns in LINQ在 LINQ 中选择多列
【发布时间】:2012-08-07 14:51:18
【问题描述】:

我编写了如下所示的 LINQ 查询:

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

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

【问题讨论】:

  • 你不能使用容器什么的。所以 resourceActions.Actions.Select(s => new Container(s.ActionName,...)).ToList();.. 你显然需要找到一个合适的容器

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


【解决方案1】:

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

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();

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      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();
      

      【讨论】:

        猜你喜欢
        • 2021-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-18
        • 1970-01-01
        相关资源
        最近更新 更多