Как уменьшить объём кода? - C#

Узнай цену своей работы

Формулировка задачи:

int[] listIdClassGroupsForAllowToUser=...;
Душа просит написать вот так:
var temp1 = uow.GetRepository<Classification>()
.All()
.Include(
clf =>
 clf.ClassGroups.Where(cg => listIdClassGroupsForAllowToUser.Contains(cg.ClassGroupID)));
Но так получается ошибка... Поэтому приходиться писать вот так чтобы работало правильно:
var temp1 = uow.GetRepository<Classification>().All()
.Include(clf =>
 clf.ClassGroups);

var temp2 = new List<Classification>();                
foreach (var t1 in temp1)                
{                    
var temp21 = new Classification()                    
{                        
Name = t1.Name,                        
ClassGroupCodeLength = t1.ClassGroupCodeLength,                        
ClassificationID = t1.ClassificationID,                        
ClassGroups = new List<ClassGroup>()                    
};                    
foreach (var t2 in t1.ClassGroups)                    
{                        
if (listIdClassGroupsForAllowToUser.Contains(t2.ClassGroupID)) 
{
temp21.ClassGroups.Add(t2);                    
AddParentClassGroup(ref temp22, t2.ParentClassGroup);
}
}                    
temp2.Add(temp21);                
}
 
public void AddParentClassGroup(ref List<ClassGroup> listCG, ClassGroup cg)        
{            
if (!listCG.Contains(cg))                
listCG.Add(cg);
if(cg !=null)
{             
if (cg.ParentClassGroup != null && cg.ParentClassGroupID != 0)                
AddParentClassGroup(ref listCG, cg.ParentClassGroup);
}        
}
Как меньше написать кода, но чтобы правильно работало?

Решение задачи: «Как уменьшить объём кода?»

textual
Листинг программы
var temp1 = uow.GetRepository<Classification>()
.All()
.Include(
clf =>
 clf.ClassGroups).Where(cg => listIdClassGroupsForAllowToUser.Intersect(cg.ClassGroups.Select(s=>s.ClassGroupID)).Count()>0)));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы