3

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

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

我如何在这里选择多个列?即我想添加列s.ActionIds.IsActive. 我无法应用它。

4

3 回答 3

12

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

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();
于 2012-08-10T10:02:00.447 回答
2

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

var actions = resourceActions.Actions.Select(s => new { s.ActionName, s.ActionId, s.IsActive } ).ToList();
于 2012-08-10T10:03:05.717 回答
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();
于 2012-08-10T10:03:30.323 回答