System.Array不包含"Zip"的定义

Mustang.wang 2014-05-14 01:13:07
double[] a3 = { 1, 2 };
double[] b3 = { 3, 4 };
double[] result = a3.Zip(b3, (x, y) => x * y).ToArray();


错误 2 “System.Array”不包含“Zip”的定义,并且找不到可接受类型为“System.Array”的第一个参数的扩展方法“Zip”(是否缺少 using 指令或程序集引用?)
什么原因,怎么解决呢? 我有引用 using Syetem.Linq;
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2014-05-14
  • 打赏
  • 举报
回复
你需要将项目的.net版本升级到4.0
Mustang.wang 2014-05-14
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
.NET 4.0才支持Zip。
我新下了个 VS2013 在里面运行...还是提示那个错误...怎么回事呢?
exception92 2014-05-14
  • 打赏
  • 举报
回复
用双重for循环吧。如果数据量不大的话。。
threenewbee 2014-05-14
  • 打赏
  • 举报
回复
不过你可以自己写一个
IEnumerable<TResult> Zip<TSource1, TSource2, TResult>(this IEnumerable<TSource1> source1, IEnumerable<TSource2> source2, Func<TSource1, TSource2, TResult> selector)
{
    var list1 = source1.ToList();
    var list2 = source2.ToList();
    for (int i = 0; i < (list1.Count > list2.Count ? list2.Count : list1.Count); i++)
        yield return selector(list1[i], list2[i]);
}
嫌麻烦,就循环吧。
threenewbee 2014-05-14
  • 打赏
  • 举报
回复
.NET 4.0才支持Zip。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧