English 中文(简体)
比较C#选定领域的两个物体
原标题:Compare two objects on selected fields in C#

法典(可能为伪装):

Person p1 = new Person { First = "John", Last = "Smith" };
Person p2 = new Person { First = "Jane", Last = "Smith" };

我期待着这样做:

bool b1 = Person.CompareOn({"First", "Last"}, p1, p2) // false;
bool b2 = Person.CompareOn({"Last"}         , p1, p2) // true;

Is there a predefined method that does this? Or do I have to write one myself?

最佳回答
问题回答

在个人课程中:

public virtual bool Equals(Person obj){
        if (obj == null) return false;
        if (Equals(First, obj.First) == false) return false;
        if (Equals(Last, obj.Last) == false) return false;
        return true;
    }

然后,你可以说:

 if(person1.Equals(person2){
                    blah....
}

every class in C# derived from the main class: Object, and this have a method: equals(Object ), wich do the job. Is that method you should override

class Person {
     ...
     public bool Equals(Object o) {
          return (Person)o.LastName.Equals(this.LastName);
     }
 }

例如,你应检查“o”是否无效,即用最后名称对等值进行检查。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签