详解三种C#实现数组反转方式

发布时间 - 2026-01-11 00:36:46    点击率:

今天上班中午吃饱之后、逛博客溜达看到一道题:数组反转  晚上回家洗完澡没事情做,就自己练习一把。

public static class ArrayReserve 
  { 
    /// <summary> 
    /// 使用 Array.Reverse(Arrar) 反转全部 
    /// </summary> 
    /// <param name="arr"></param> 
    public static void ReverseDemo1(int[] arr) 
    { 
      Console.WriteLine("使用 Array.Reverse(Arrar) 反转全部"); 
      Array.Reverse(arr); 
    } 
    /// <summary> 
    /// 使用 Array.Reverse(Array arr,int begin,int end),反转指定部分 
    /// </summary> 
    /// <param name="arr"></param> 
    /// <param name="begin"></param> 
    /// <param name="end"></param> 
    public static void ReverseDemo2(int[] arr, int begin, int end) 
    { 
      Console.WriteLine("使用 Array.Reverse(Array arr,int begin,int end),反转指定部分"); 
      Array.Reverse(arr, begin, end); 
    } 
    /// <summary> 
    /// 使用自定义方法实现反转 
    /// </summary> 
    /// <param name="arr"></param> 
    /// <param name="begin"></param> 
    /// <param name="end"></param> 
    public static void ReverseDemo3(int[] arr, int begin, int end) 
    { 
      Console.WriteLine("使用自定义方法实现反转"); 
      if(null==arr) 
      { 
        throw new ArgumentNullException("arr", "Array不能为null"); 
      } 
      if(begin<=0 || end <=0) 
      { 
        throw new ArgumentOutOfRangeException("开始或结束索引没有正确设置"); 
      } 
      if(end>arr.Length) 
      { 
        throw new ArgumentOutOfRangeException("end", "结束索引超出数组长度"); 
      } 
      while(begin<end) 
      { 
        int temp = arr[end]; 
        arr[end] = arr[begin]; 
        arr[begin] = temp; 
        begin++; 
        end--; 
      } 
    } 
  /// <summary> 
    /// 使用自定义方法实现反转(使用栈《后进先出》) 
    /// </summary> 
    /// <param name="arr"></param> 
    /// <param name="begin"></param> 
    /// <param name="end"></param> 
    public static void ReverseDemo4(int[] arr, int begin, int end) 
    { 
      Console.WriteLine("使用自定义方法实现反转(使用栈《后进先出》)"); 
      if (null == arr) 
      { 
        throw new ArgumentNullException("arr", "Array不能为null"); 
      } 
      if (begin <= 0 || end <= 0) 
      { 
        throw new ArgumentOutOfRangeException("开始或结束索引没有正确设置"); 
      } 
      if (end > arr.Length) 
      { 
        throw new ArgumentOutOfRangeException("end", "结束索引超出数组长度"); 
      } 
      Stack<int> intStack = new Stack<int>(); 
      int tempBegin = begin; 
      for(;begin<=end;begin++) 
      { 
        intStack.Push(arr[begin]); 
      } 
      for (; tempBegin <= end; tempBegin++) 
      { 
        arr[tempBegin] = intStack.Pop(); 
      } 
    } 
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# c#  # 数组反转  # C#中数组初始化、反转和排序用法实例  # C#使用自定义算法对数组进行反转操作的方法  # C#数组反转与排序实例分析  # 自定义  # 能为  # 洗完  # 吃饱  # 大家多多  # 中午  # 晚上  # 博客  # lt  # ArrayReserve  # public  # static  # Array  # Reverse  # summary  # gt  # csharp  # nbsp  # Push  # arr 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  使用spring连接及操作mongodb3.0实例  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Laravel如何升级到最新版本?(升级指南和步骤)  简单实现Android文件上传  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  奇安信“盘古石”团队突破 iOS 26.1 提权  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  高防服务器如何保障网站安全无虞?  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  微信h5制作网站有哪些,免费微信H5页面制作工具?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  香港网站服务器数量如何影响SEO优化效果?  浅谈javascript alert和confirm的美化  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  如何在Windows服务器上快速搭建网站?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  如何在搬瓦工VPS快速搭建网站?  Laravel中的Facade(门面)到底是什么原理  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  php结合redis实现高并发下的抢购、秒杀功能的实例  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Laravel怎么实现模型属性的自动加密  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  C++时间戳转换成日期时间的步骤和示例代码  Laravel如何使用Blade模板引擎?(完整语法和示例)  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  如何用JavaScript实现文本编辑器_光标和选区怎么处理  三星、SK海力士获美批准:可向中国出口芯片制造设备  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  详解Android——蓝牙技术 带你实现终端间数据传输  香港服务器部署网站为何提示未备案?  Android自定义控件实现温度旋转按钮效果  Laravel如何处理表单验证?(Requests代码示例)