Сравните два общих элемента, которые имеют логические свойства, если какой-либо из них возвращает true, как в общем списке результатов - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь сравнить два элемента, которые являются общими с одинаковыми свойствами внутри него. Если свойство будет сравниваться, то в любом элементе списка, который означает true, возвращается TRUE, иначе как FALSE Я новичок в c #, поэтому не могу опубликовать здесь код, извините за неудобства. Элемент 1 и элемент 2 имеют одинаковые свойства, но рассчитаны для разных случаев : Булевы свойства должны быть проверены.

public class RrmModulePermission : BaseEntity
    {

        public long Id { get; set; }
        public int? EmployeeId { get; set; }
        public int? DesignationId { get; set; }
        public int ModuleId { get; set; }
        public bool View { get; set; }
        public bool ViewAll { get; set; }
        public bool Add { get; set; }
        public bool Edit { get; set; }
        public bool Delete { get; set; }
        public bool Import { get; set; }
        public bool Export { get; set; }
        public int CreatedBy { get; set; }
        public DateTimeOffset CreatedOn { get; set; }
        public int? UpdatedBy { get; set; }
        public DateTimeOffset? UpdatedOn { get; set; }
        public virtual RrmModule Modules { get; set; }

    }


 var list3 = new RrmModulePermission();
            if (list1.View || list2.View)
            {
                list3.View = true;
            }
            if (list1.Add || list2.Add)
            {
                list3.Add = true;
            }
            if (list1.Edit || list2.Edit)
            {
                list3.Edit = true;
            }
            if(list1.Delete || list2.Delete)
            {
                list3.Delete = true;
            }
            return list3;

1 Ответ

0 голосов
/ 03 сентября 2018

Исходя из того, как вы представили свой код, я бы предложил инициализировать list3 примерно так

// if both are null, return an object with all bools as false
if (list1 == null && list2 == null)
    return new RrmModulePermission();

// if list1 is null, set all bools to false
if (list1 == null)
    list1 = new RrmModulePermission();

// if list2 is null, set all bools to false
if (list2 == null)
    list2 = new RrmModulePermission();

var list3 = new RrmModulePermission
{
    View = list1.View || list2.View,
    ViewAll = list1.ViewAll || list2.ViewAll,
    Add = list1.Add || list2.Add,
    Edit = list1.Edit || list2.Edit,
    Delete = list1.Delete || list2.Delete,
    Import = list1.Import || list2.Import,
    Export = list1.Export || list2.Export
};

return list3;

Обратите внимание, что если для любого из свойств по умолчанию установлено значение true , его необходимо заменить

new RrmModulePermission();

с (вам нужно только изменить свойства со значением по умолчанию true)

new RrmModulePermission
{
    View = false,
    ViewAll = false,
    Add = false,
    Edit = false,
    Delete = false,
    Import = false,
    Export = false
};

например, если только Add по умолчанию true использовать

new RrmModulePermission { Add = false };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...