以下に示すLINQクエリを作成しました。
List<Actions> actions = resourceActions.Actions.Select(s => s.ActionName).ToList();
ここで複数の列を選択するにはどうすればよいですか?s.ActionId
つまり、列とを追加したいと思いますs.IsActive
。適用できません。
以下に示すLINQクエリを作成しました。
List<Actions> actions = resourceActions.Actions.Select(s => s.ActionName).ToList();
ここで複数の列を選択するにはどうすればよいですか?s.ActionId
つまり、列とを追加したいと思いますs.IsActive
。適用できません。
必要なデータを表すクラスを作成します。
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();
これがあなたが探しているものだと思います。ただし、出力を匿名タイプに変更する必要があります。
var actions = resourceActions.Actions.Select(s => new { s.ActionName, s.ActionId, s.IsActive } ).ToList();
たとえば、これには匿名タイプを使用できます
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();