【发布时间】:2021-08-16 09:20:30
【问题描述】:
我正在使用 C# 和 .NET 4.7.2 阅读两个 Excel 工作表:
var sheet1 = newWS.UsedRange.Value;
var sheet2 = oldWS.UsedRange.Value;
sheet1(或 sheet2)上的手表按预期显示了一个数组。但是当我尝试使用以下方法比较它们时:
if (sheet1.SequenceEqual(sheet2))
失败,因为“System.Array”不包含“SequenceEqual”的定义
我已经声明:
using System.Linq;
事实上,我已经在同一个模块中使用了一个简单的例子来让 SequenceEqual 工作:
string[] array1 = { "dot", "net", "deves" };
string[] array3 = { "dot", "net", "deves" };
bool b = array1.SequenceEqual(array3);
Console.WriteLine(b);
那么我在这里错过了什么?它不喜欢数组变体吗? System.Array 是没有实现 sequenceEqual 的特定类型的数组吗?在这个版本的 .NET 中没有实现它?我的案子错了???或者更可能是完全不同的东西?
任何提示表示赞赏。
(当然更大的问题是比较两个数组 sheet1 和 sheet2 的最佳方法——看起来 SequenceEqual 应该满足我的需要,但也许有更好的方法?)
【问题讨论】:
-
会将其转换为适当的 .net 类型并执行
SequenceEquals帮助吗?sheet1是什么类型? -
@shahkalpesh 我认为它被装进了
object,因为VBA类型是variant