gpt4 book ai didi

C# 两个数字列表之间的逐元素差异

转载 作者:太空宇宙 更新时间:2023-11-03 22:30:03 25 4
gpt4 key购买 nike

假设

List<int> diff(List<int> a, List<int> b)
{
// assume same length lists
List<int> diff= new List<int>(a.Count);
for (int i=0; i<diff.Count; ++i)
{
diff[i] = a[i] - b[i];
}
return diff;
}

我想让某种单行代码做同样的事情,或者使用 lambda 的东西,而不是重写所有样板。

例如,在 python 中,这可能是

[ai-bi for ai,bi in zip(a,b)]

甚至

np.array(a) - np.array(b)

有没有用 C# 编写的好方法?我的所有搜索都找到了删除或添加列表元素的方法,但没有找到关于元素操作的方法。

最佳答案

Linq 有一个 Zip方法也是:

var diff = a.Zip(b, (ai, bi) => ai - bi);

请注意,您的代码中的一个潜在错误是,如果 b 的元素少于 a,那么当您尝试访问该范围之外的元素时,您会得到一个异常bZip 只会返回两个 集合都有项目的项目,这实际上是两个集合长度中较短的一个。

关于C# 两个数字列表之间的逐元素差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58344429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com