- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来自 MSDN
The SequenceEqual(IEnumerable, IEnumerable) method enumerates the two source sequences in parallel and compares corresponding elements by using the default equality comparer for TSource, Default. The default equality comparer, Default, is used to compare values of the types that implement the IEqualityComparer generic interface.
a) 据我理解上面的引用,它暗示 EqualityComparer<T>.Default
用于比较实现 IEqualityComparer<T>
的类型的元素, 事实上 Default
用于返回 IEqualityComparer<T>
的特定实现要么调用IEquatable<T>.Equals
(假设 T
可分配给 IEquatable<T>
)或者它调用 Object.Equals
b) 引用还表明 TSource
必须实现 IEqualityComparer<T>
,这是不正确的:
static void Main(string[] args)
{
Test test1 = new Test();
Test test2 = new Test();
Test[] list1 = { test1, test2 };
Test[] list2 = { test1, test2 };
bool eq = list1.SequenceEqual(list2); //works
}
public class Test { }
那么我是不是误解了这句话试图传达的意思,或者这句话明显是错误的?
谢谢
最佳答案
不是TSource
应该实现 IEqualityComparer
但是EqualityComparer<T>.Default
工具 IEqualityComparer
The default equality comparer, Default, is used to compare values of the types that implement the IEqualityComparer generic interface.
这太容易忘记了。
关于.net - Enumerable.SequenceEqual<TSource> 和 EqualityComparer<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5721271/
在下面的代码中调用 SequenceEqual当 List 是用类泛型类型定义的(调用 EquatableClass.Equals<>)时,在泛型列表上返回 true(如预期的那样)。 如果列表定义为
我使用 c# 3.5 和 linq 编写了一个简单的程序。 我有课 public class Product { public Product() { } public
我在进行彩票模拟,我有 2 个不同的数组,其中包含 6 个数字,首先保存用户希望玩的数字,其次保存每次运行生成的数字。 用户将他们的数字输入文本框,并将其保存为字符串并放入数组中的相应位置,随机生成的
父类型: public class IdObject : IComparable, IEquatable { public int id { get; set; } public bo
我有两个 List我正在使用 SequenceEqual方法来确定它们是否匹配。 我现在需要一个 List, string, IEnumerable,失败的元素的任何索引。 有没有简单的方法? 谢谢
我有一个名为 Country 的类。它有公共(public)成员“CountryName”和“States”。 我已经声明了一份国家名单。 现在我想编写一个函数,它接受一个新的“国家”并确定 Coun
在 C# 中,是否有 IEqualityComparer使用 SequenceEqual判断是否相等的方法? 最佳答案 .NET Framework 中没有这样的比较器,但您可以创建一个: publi
任何人都可以帮助解决我遇到的一些问题。我正在尝试创建一种自制的身份验证方法,我有点卡在几个方面,希望有人能提供帮助。我首先想问的是如何解决我在代码中评论的问题: public string A
我正在编写一个简单的控制台应用程序来比较自定义类对象的两个实例。对于每个属性,我将 True 或 False 写入控制台窗口以显示每个对象的属性是否匹配。 某些属性,如 ProductLines(列表
我有以下 LINQ 语句(stationId 是一个 int 而 version 是一个字节数组): var foundStation = (from wd in _Conte
为什么Enumerable.SequenceEqual将其比较器视为 IEqualityComparer ?该算法似乎没有使用 GetHashCode .为什么不取一个 Func谓词,类似于 Firs
我一直在尝试实现 Set 相等性(即顺序不相关的列表比较),并在阅读了诸如 this 之类的问题之后和 this ,编写了以下简单扩展: public static bool SetEqual
我一直在尝试实现 Set 相等性(即顺序不相关的列表比较),并在阅读了诸如 this 之类的问题之后和 this ,编写了以下简单扩展: public static bool SetEqual
我很难弄清楚 SequenceEqual 在 Reactive Extensions 2.2.5 版中是如何工作的 下面是代码 var subject1 = new Subject();
有人能解释一下为什么我会得到不同的结果吗? bool result = true; for (int row = 0; row < State.Rows; row++) { for (int
我正在尝试使用以下逻辑检查字符串是否为回文的可能性 class Program { static void Main(string[] args) { Console.
我正在尝试使用 Enumerable.SequenceEqual(x,y) 因为我希望它基于Object.Equals(x,y) 方法,如果 x 或 y 为 null,则返回 false,如果两者均为
我正在尝试使用 Type.GetMethod(...) 获取 Enumerable.SequenceEqual 的 MethodInfo。到目前为止,我已经尝试了以下方法: var mi = type
来自 MSDN The SequenceEqual(IEnumerable, IEnumerable) method enumerates the two source sequences in pa
我有 2 个数组: int[] arr1 = new int[] { 1, 2, 3 }; int[] arr2 = new int[] { 1, 2, 3 }; 我需
我是一名优秀的程序员,十分优秀!