C# 数组截取

C# 数组截取这段时间常常需要对数据的数据进行截取,以方便解析。原来一直用的Array.ConstrainedCopy();以及 Array.Copy();来进行数组复制截取 先看Array.ConstrainedCopy():其说明如下 publicstaticvoidConstrainedCopy(ArraysourceArray,intsourceIndex,Arraydes…

大家好,又见面了,我是你们的朋友全栈君。

这段时间常常需要对数据的数据进行截取,以方便解析。

原来一直用的Array.ConstrainedCopy();以及 Array.Copy();来进行数组复制截取

 

  • 先看Array.ConstrainedCopy():其说明如下
  1.  public static void ConstrainedCopy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length);
     

 // 摘要:
        //     从指定的源索引开始,复制 System.Array 中的一系列元素,将它们粘贴到另一 System.Array 中(从指定的目标索引开始)。保证在复制未成功完成的情况下撤消所有更改。
        //
        // 参数:
        //   sourceArray:
        //     System.Array,它包含要复制的数据。
        //
        //   sourceIndex:
        //     一个 32 位整数,它表示 sourceArray 中复制开始处的索引。
        //
        //   destinationArray:
        //     System.Array,它接收数据。
        //
        //   destinationIndex:
        //     一个 32 位整数,它表示 destinationArray 中存储开始处的索引。
        //
        //   length:
        //     一个 32 位整数,它表示要复制的元素数目。
        //
        // 异常:
        //   T:System.ArgumentNullException:
        //     sourceArray 为 null。- 或 -destinationArray 为 null。
        //
        //   T:System.RankException:
        //     sourceArray 和 destinationArray 的秩不同。
        //
        //   T:System.ArrayTypeMismatchException:
        //     sourceArray 类型不同于并且不是从 destinationArray 类型派生的。
        //
        //   T:System.InvalidCastException:
        //     sourceArray 中的至少一个元素无法强制转换为 destinationArray 类型。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     sourceIndex 小于 sourceArray 的第一维的下限。- 或 -destinationIndex 小于 destinationArray
        //     的第一维的下限。- 或 -length 小于零。
        //
        //   T:System.ArgumentException:
        //     length 大于从 sourceIndex 到 sourceArray 末尾的元素数。- 或 -length 大于从 destinationIndex
        //     到 destinationArray 末尾的元素数。

 

  • 再看Array.Copy();:

它有四个重载,都差不多,具体就不多累赘了,直接来看:

   

  1. 第一种是三参数的重载(有两种,不过只是长度length由int变为long了)

 public static void Copy(Array sourceArray, Array destinationArray, int length);

        // 摘要:
        //     从第一个元素开始复制 System.Array 中的一系列元素,将它们粘贴到另一 System.Array 中(从第一个元素开始)。长度指定为 32 位整数。
        //

  1. 2二种是五参数的重载(同样有两种,长度length及索引index由int变为long)

 public static void Copy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length);
    // 摘要:
        //     从指定的源索引开始,复制 System.Array 中的一系列元素,将它们粘贴到另一 System.Array 中(从指定的目标索引开始)。长度和索引指定为
        //     32 位整数。
 

后来了解到还有一种方法可以截取,如下:

            data.Skip(n).Take(m).ToArray();

  • data是源数组
  • Skip()定义如下
    •            public static IEnumerable<TSource> Skip<TSource>(this IEnumerable<TSource> source, int count);
    •         // 摘要:
              //     跳过序列中指定数量的元素,然后返回剩余的元素。
              //
  • Take定义如下:
    •         public static IEnumerable<TSource> Take<TSource>(this IEnumerable<TSource> source, int count);
    •         // 摘要:
              //     从序列的开头返回指定数量的连续元素。
              //

现在将这几种方法记录下来,主要了解的也不是很深,就不对其做什么多余的解释说明了,以免误导大家。

如果后续有其他方法,我会持续更新,同时也希望大家能给我更多的指点。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133578.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 视图索引问题

    视图索引问题  最近和一直在研究如何加快查询数据库的速度,看了网络上说用索引,会加快查询的速度.我就认真看了索引了一些文章,也建立了表索引.但是在建立视图索引的时候遇到问题了, 无法在视图 SBK_VIEW 上创建 索引,因为该视图未绑定到架购.查一下相关的资料,发现:定义索引视图的  SELECT  语句不得包含视图、行集函数、行内函数或派生表。同一物理表在该语句中只能出现一次

    2022年7月22日
  • c语言-日期格式化[通俗易懂]

    c语言-日期格式化[通俗易懂]7-12日期格式化(5分)世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。输入格式:输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。输出格式:在一行中按照“yyyy-mm-dd”的格式给出年…

    2022年6月9日
  • vs 2010 专业版 密钥「建议收藏」

    vs 2010 专业版 密钥「建议收藏」YCFHQ-9DWCY-DKV88-T2TMH-G7BHP转载于:https://www.cnblogs.com/daretodream/archive/2013/04/02/2995147.html

    2022年6月6日
  • 程序猿生存定律–交换是职场里一切的根本

    程序猿生存定律–交换是职场里一切的根本

    2021年11月13日
  • 如何对图像进行卷积操作[通俗易懂]

    如何对图像进行卷积操作[通俗易懂]1、首先先了解下什么是卷积呢?2、卷积操作:卷积核与原图对应位置相乘再求和;然后将所求和放在被卷积操作的图中心位置。上图表示一个8×8的原图,每个方格代表一个像素点;其中一个包含X的方格是一个5×5的卷积核,核半径等于5/2=2;进行卷积操作后,生成图像为上图中包含Y的方格,可以看出是一个4×4的生成图;通过比较观察可以发现,生成图比原图尺寸要小,为了保证生成…

    2022年5月11日
  • 史上最全最详细的Anaconda安装教程[通俗易懂]

    史上最全最详细的Anaconda安装教程[通俗易懂]目录1.Anaconda简介2.Anaconda安装情况的选择2.1情况一2.1.1Anaconda的下载2.1.2测试安装2.1.3更改源2.1.4更新包2.1.5创建和管理虚拟环境2.2情况二2.2.1方法一:通过更改python.exe文件名2.2.2方法二:通过切换虚拟环境3.结束语1.Anaconda简介…

    2022年6月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号