在我编程时,我提出了这个问题,
更好的是,让方法接受单个实体或这些实体的列表?
例如,我需要一个字符串列表。我可以有:
接受List并返回带有结果的字符串List的方法。
List<string> results = methodwithlist(List[objects]);
或
接受对象并返回字符串的方法。然后在循环中使用此函数,从而填充列表。
for int i = 0; i < List<objects>.Count;i++;)
{
results = methodwithsingleobject(List<objects>[i]);
}
**这只是一个例子。我需要知道哪一个更好,或更多使用,为什么。
谢谢!
答案 0 :(得分:7)
好吧,当你获得第二个表单时很容易构建第一个表单 - 但是使用LINQ,一旦你有了预测,你真的不需要编写自己的表单。例如,您可以写:
List<string> results = objectList.Select(X => MethodWithSingleObject()).ToList();
通常,编写和测试仅处理单个值的方法更容易,除非实际需要知道集合中的其余值(例如,查找聚合)。
答案 1 :(得分:2)
我会选择第二个,因为当你有一个字符串时它更容易使用(即它更通用)。此外,方法本身的责任更加明确,因为如果方法的目的只是修改字符串,该方法不应与列表有任何关系。
此外,您可以使用Linq简化呼叫:
result = yourList.Select(p => methodwithsingleobject(p));
答案 2 :(得分:1)
在学习任何语言时,这个问题出现了很多,答案有点没有实际意义,因为标准编码实践是依靠LINQ在运行时为您优化代码。但这假设你正在使用支持它的语言版本。但是,如果您确实想对此进行一些研究,那么有一些Stack Overflow文章深入探讨了这一点并且还提供了外部资源来审核:
我所学到的不是过分依赖Count并且在类型集合上使用长度,因为它可以快得多。
希望这有用。