Удалить во вложенных циклах (удалить внутри foreach)C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Удалить во вложенных циклах (удалить внутри foreach)

Сообщение Anonymous »

Это мои сущности:

Код: Выделить всё

public class Permissions
{
public string PermissionName { get; set; }
public List controllers { get; set; }
}
public class Controllers
{
public string ControllerName { get; set; }
public List actions { get; set; }
}
public class Actions
{
public string ActionName { get; set; }
public bool Active { get; set; }
}
Я хочу удалить контроллеры с деактивными действиями...

Код: Выделить всё

    var a1 = new Actions() { ActionName = "Action1", Active = false };
var a2 = new Actions() { ActionName = "Action2", Active = true };
var a3 = new Actions() { ActionName = "Action3", Active = true };
var a4 = new Actions() { ActionName = "Action4", Active = true };

var c1 = new Controllers() { ControllerName = "Controller1", actions = new List() { a1, a2 } };
var c2 = new Controllers() { ControllerName = "Controller2", actions = new List() { a3, a4 } };

var ListOfPermision = new List
()
{
new Permissions() { PermissionName = "P1", controllers = new List() { c1, c2 } }
};
//First Way:-------------------------------
ListOfPermision.ForEach(p =>
p.controllers.ForEach(c =>
c.actions.ForEach(a =>
{
if (!a.Active)
{
//Remove Controller
}
}
)));
//OR Second Way:----------------------------
foreach (var p in ListOfPermision)
{
foreach (var c in p.controllers)
{
foreach (var a in c.actions)
{
if (!a.Active)
{
//Remove Controller
}
}
}
}
//----------------------------------
Следующий оператор должен удалить некоторые контроллеры, поскольку эти контроллеры имеют хотя бы одно действие с Active=False...
Я не знаю, что мне лучше всего сделать. ..
Что делать, если я хочу удалить контроллер, счетчик действий которого равен 0?
Спасибо, ребята, за уделенное время


Подробнее здесь: https://stackoverflow.com/questions/786 ... de-foreach
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»