【发布时间】:2016-12-23 10:39:24
【问题描述】:
我做了一个我不太喜欢的图案。
如下:
List<Element> listOfPossibleResults = getAllPossibleResults();
Element result = findResult(getFirstPriorityElements(listOfPossibleResults));
if (result!= null)
{
return result;
}
result = findResult(getSecondPriorityElements(listOfPossibleResults));
if (result!= null)
{
return result;
}
private Element findResult(List<Element> elements) {...};
private List<Element> getFirstPriorityElements(List<Element> elements) {...};
private List<Element> getSecondPriorityElements(List<Element> elements) {...};
等等。
基本上,我正在根据一些规则创建子列表。创建子列表后,我尝试在其中找到特定元素。如果我没有找到,我会转到下一个优先级,依此类推。
我想要一个可以迭代这些标准的解决方案,直到找到解决方案。但我不知道如何将它们变成我可以迭代的格式。
你们能给我这个问题的 C# 特定解决方案吗?
【问题讨论】:
-
我认为您过度简化了代码。至少写出每个变量的类型和方法的
return type。 -
为清楚起见编辑了问题。
-
好的。第一种方法是将
getFirstPriorityElements与getSecondPriorityElements合并,并使用getPriorityElements之类的方法,该方法采用int priority之类的附加参数....因此您可以创建一个循环并使用索引进行迭代。
标签: c# linq design-patterns iteration