2つのオブジェクト(同じ型の)をとり、異なる値を持つプロパティのリストを返す汎用メソッドを作成する必要があります。 私の要件は少し違っているので、私はこれを重複しているとは思わない。c#異なる値を持つプロパティの2つのオブジェクトを比較します。
public class Person
{
public string Name {get;set;}
public string Age {get;set;}
}
Person p1 = new Person{FirstName = "David", Age = 33}
Person p2 = new Person{FirstName = "David", Age = 44}
var changedProperties = GetChangedProperties(p1,p2);
コードは、要件について説明します。
public List<string> GetChangedProperties(object A, object B)
{
List<string> changedProperties = new List<string>();
//Compare for changed values in properties
if(A.Age != B.Age)
{
//changedProperties.Add("Age");
}
//Compare other properties
..
..
return changedProperties;
}
次考慮する必要があります。
- ジェネリック - (同じクラスで)
- パフォーマンスをオブジェクトの任意の型を比較することができるはずです
- 簡易
そこにはどのようなライブラリもありますか?
AutoMapperを使用してこれを達成できますか?
何かが変更されたときは常に、「dirty」フラグを設定することをお勧めします。オブジェクト全体を比較するよりもはるかに高速です(しかも簡単です)。 – Psi
[型のプロパティ](http://stackoverflow.com/q/737151/1997232)を列挙して、両方のインスタンスから値を取得し、それらの名前を比較して返すことができます。 – Sinatr
@Psiいいえ、これらのオブジェクトは私がそれを制御できないいくつかのAPIメソッドによって変更されるので、私はそれを行うことはできません。 – Rahul