You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单一方法替代接收List<string>与string[]的两个重载方法?

可以合并成单一方法,用IList<string>作为参数类型

当然能把这两个方法合并成一个,IList<string> 是最适配的参数类型——因为List<string>和string[]都实现了IList<string>接口,而且这个接口刚好提供了你需要的所有操作:

  • 通过索引读写元素(collection[i])
  • 获取元素总数(collection.Count,数组的Length会被自动映射为Count属性)

重写后的单一方法代码

public static void NumberLinesInCollection(IList<string> collection, int startNumberingFromRowNumber = 0)
{
    int numberOfLines = collection.Count;
    for (int i = startNumberingFromRowNumber; i < numberOfLines; i++)
    {
        string resultingString = StringOperations.PadWithBlanks(
            originalString: (i + 1).ToString(),
            fieldLength: numberOfLines.ToString().Length,
            position: PaddingDirection.left);
        collection[i] = resultingString + ". " + collection[i];
    }
}

补充说明

  1. 原List<string>版本里的sourceString变量未被使用,已经在重写代码中移除。
  2. 调用新方法时,传入List<string>实例或string[]数组都无需额外转换,直接使用即可:
    // 传入数组
    string[] arr = {"a", "b", "c"};
    NumberLinesInCollection(arr);
    
    // 传入List
    List<string> list = new List<string> {"x", "y", "z"};
    NumberLinesInCollection(list);
    

内容的提问来源于stack exchange,提问作者user2102327

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:15:52