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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • win7 64位wamp2.5无法启动MSVCR110.DLL丢失听语音

    win7 64位wamp2.5无法启动MSVCR110.DLL丢失听语音

    2021年9月23日
    60
  • 混合开发hybrid原理_unity引擎开源吗

    混合开发hybrid原理_unity引擎开源吗首先,我们先来罗列一下当前市面上,移动端的各种开发方法1.NativeApp纯原生的app开发模式,android(Java)或者ios(Swift,Oc)优点:有最好的性能,有最好的体验缺点:开发和发布的成本极高,两端需要不同的技术人员来维护,原生开发人员非常的稀缺2.WebApp移动端运行在浏览器上的网站,我们一般称之为H5应用,就是泛指我们经常开发的spa,map页面语言:js,vue,react,angular等优点:1.开发和发布非常方便2.用户看到的页面,会随着开发人

    2022年9月22日
    0
  • Google Play 应用上架流程

    转自:https://www.jianshu.com/p/e40e78a279b7公司的App需要在GooglePlay上架,我表示一脸懵逼~虽然做了几年Android开发了,但是都是在国内的应用市场上架App,GooglePlay还真没接触过,废话不多说直接开搞~要在GooglePlay上架应用得有两个前提:1.要科学上网(不懂科学上网?自己去百度或者…

    2022年4月6日
    102
  • 用户和文件权限管理

    用户和文件权限管理

    2022年2月21日
    304
  • 求助,linux安装pycharm报错

    求助,linux安装pycharm报错错误如图,操作系统是银河麒麟v10sp1,下载的pycharm社区版2021.3.1.tar.gz,已安装jdk17!有没有没有知道的大神,告知一二!

    2022年8月31日
    0
  • 统计模型评价准则 AIC「建议收藏」

    统计模型评价准则 AIC「建议收藏」统计模型评价时,经常见到一个准则AIC,全称是Akaikeinformationcriterion,是以日本的统计学家Akaike命名的,它的计算公式为:AIC=2k−ln⁡(L^)AIC=2k-\ln(\hat{L})AIC=2k−ln(L^)其中,kkk是模型中的待估参数数量,L^\hat{L}L^是该模型极大似然估计的最大值。AIC值越小,说明该统计模型损失的信息越少。…

    2022年5月23日
    48

发表回复

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

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