3

以下に示すLINQクエリを作成しました。

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

ここで複数の列を選択するにはどうすればよいですか?s.ActionIdつまり、列とを追加したいと思いますs.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 に答える