通过方法返回列表的最佳方法是什么

本文关键字:方法 最佳 是什么 返回 列表 | 更新日期: 2023-09-27 18:33:51

>假设我有一个返回字符串名称列表的方法。

public List<String> buildNamesList(){
   List<String> namesList = new List<String>();
   //add several names to the list
   return namesList;
}

现在,如果我有一个需要 namesList 的方法,它会像这样返回它是最好的方法吗?

public void someMethod(){
  List<String> namesList = new List<String>();
  namesList = buildNamesList();
  //traverse namesList
}

通过方法返回列表<t>的最佳方法是什么

如果你在buildNamesList方法中创建一个新列表,我只想说:

var namesList = buildNamesList(); 

如何返回列表实际上取决于您在做什么。

如果您只需要内存中的整个列表,您的方法很好,尽管我称之为

public void someMethod(){
  List<String> namesList = buildNamesList();
}

无需将变量初始化为将立即替换的空列表。

如果列表非常大,或者您只需要遍历它,则可以使用 yield 关键字并将函数的返回类型更改为 IEnumerable<string> ,尽管您当前的设计不符合此模式。

不要将其变量分配给new List<T>()只是为了立即将其替换为返回值。

你不需要初始化它两次,只需做:

public void someMethod(){
    List<String> namesList = buildNamesList();
}

虽然如果你是一个FxCop爱好者,严格来说,让方法返回具体类型(在这种情况下List)并不是一个好的做法,你应该返回接口(IEnumerable

编辑:作为参考,它是FxCop规则CA1059:)