c# - 比较 2 字节数组

标签 c# arrays

我有 2 个 int 数组。

int[] data1 #
int[] data2 #

我想创建一个第三个 int[] data3,它是其他两个数组之间的差异。

让我们取 data1 中的第一个值。

该值为 15(例如)。

现在让我们取 data2 中的第一个值。

该值为 3(例如)。

data3 中的第一个值是 12。

但是,如果第一个值是相反的,即
data1[0]  = 3
data2[0]  = 15

那么差异将是-12。但我希望它只有 12 岁。

目前我有一个 for 循环,我在那里进行计算以获得那种类型的结果。
  • 有没有办法在不枚举的情况下做 data1-data2 = data3
    一个循环?
  • 如果是这样,我可以在不使用减号的情况下获得差异吗
    数字?

  • 谢谢

    注:
    回应“关闭者”。我在一定程度上同意你的看法。我需要添加到这个问题的是:

    我正在寻找最有效的方法(最快的方法,但低内存是第二优先级)来促进这一点。使用 Linq(据我所知)可能是最慢的方法?

    最佳答案

    您正在寻找Zip方法

    var data3 = data1.Zip(data2, (d1,d2) => Math.Abs(d1 - d2)).ToArray();
    

    Enumerable.Zip<TFirst, TSecond, TResult> Method

    Applies a specified function to the corresponding elements of two sequences, producing a sequence of the results.



    所以它只需要每个对应的元素,例如 data1[0]data2[0] ,然后 data1[1]data2[1]依此类推..然后应用函数Math.Abs(d1-d2)它只是简单地减去两个数字并获得结果的绝对值。然后返回一个包含每个操作结果的序列。

    关于c# - 比较 2 字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743517/

    相关文章:

    c# - 如何获取数组的中间元素?

    php - 我可以通过使它等于另一个数组来分配一个数组吗?

    c# - 多个 azure 队列的一个监听器

    c# - 使用 SSIS 脚本任务读取 Excel 单元格值

    c# - 使用单一工具分析多种语言的日志文件。和日志记录框架的建议

    c# - 避免 Uris 上的数据库信息

    java - 为什么我没有得到任何输出?并且有一个InputMismatchException

    c - 结构体数组;输入多个字符串

    javascript - 从javascript数组获取随机值并将其打印为字符串

    c# - 使用任务进行连续轮询