相关疑难解决方法(0)

IEquatable与重写Object.Equals()有什么区别?

我希望我的Food类能够在它等于另一个实例时进行测试Food.我稍后会对List使用它,我想使用它的List.Contains()方法.我应该实施IEquatable<Food>还是仅仅覆盖Object.Equals()?来自MSDN:

此方法通过使用默认的相等比较器来确定相等性,由对象的T的IEquatable.Equals方法的实现(列表中的值的类型)定义.

所以我的下一个问题是:.NET框架的哪些函数/类可以使用Object.Equals()?我应该首先使用它吗?

.net c# equality equals iequatable

168
推荐指数
3
解决办法
6万
查看次数

如何使用IEqualityComparer

我的数据库中有一些相同数字的铃声.我希望所有这些都没有重复.然后我创建了一个比较类来完成这项工作,但是函数的执行从函数中产生了很大的延迟而没有明显的,从0.6秒到3.2秒!

我做得对吗还是我必须使用其他方法?

reg.AddRange(
    (from a in this.dataContext.reglements
     join b in this.dataContext.Clients on a.Id_client equals b.Id
     where a.date_v <= datefin && a.date_v >= datedeb
     where a.Id_client == b.Id
     orderby a.date_v descending 
     select new Class_reglement
     {
         nom  = b.Nom,
         code = b.code,
         Numf = a.Numf,
     })
    .AsEnumerable()
    .Distinct(new Compare())
    .ToList());

class Compare : IEqualityComparer<Class_reglement>
{
    public bool Equals(Class_reglement x, Class_reglement y)
    {
        if (x.Numf == y.Numf)
        {
            return true;
        }
        else { return false; }
    }
    public int GetHashCode(Class_reglement codeh)
    {
        return …
Run Code Online (Sandbox Code Playgroud)

c# linq iequalitycomparer

90
推荐指数
3
解决办法
15万
查看次数

标签 统计

c# ×2

.net ×1

equality ×1

equals ×1

iequalitycomparer ×1

iequatable ×1

linq ×1