2016-11-24 8 views
-1

私は2つのオブジェクトのリストを持っており、プロパティが変更されているかどうかを知る必要があります。オブジェクトのプロパティを比較します

public class Person 
{ 
    public int PersonId { get; set; } 
    public string Name { get; set; } 
    public string Email { get; set; } 
} 

はその後、私はPersonの2つのリストを持っている:ここに は、私が持っているものです。

var list1 = new List<Person>(); 
var list2 = new List<Person>(); 

私はlist1list2は、いくつかのPersonオブジェクトが含まれている場合、プロパティの値がPersonIdて比較し、同じであることを確認して、知っておく必要があります。

+1

何か試しましたか?あなたはlinqを見たことがありますか?これは ''合流する '(http://stackoverflow.com/documentation/c%23/68/linq-queries/2994/joins-inner-left-right-cross-and-full-outer-joins#t=201611241921121673108 )ドキュメントは始めるのに適しています。また、どこでもできることを使用する –

+0

はい、私の質問は、同時にすべてのプロパティを比較するために参照されました –

+1

しかし、再度あなたが試したことを示してください...あなたはそれを修正することができますが、あなたのためにそれを書くことはできません –

答えて

0

私はこれを行うにはさまざまな方法があると確信していますが、私の提案する解決策は以下のとおりです。

var list1 = new List<Person> 
{ 
    new Person() 
    { 
     PersonId = 123, 
     Name = "Tom", 
     Email = "[email protected]" 
    } 
}; 


var list2 = new List<Person> 
{ 
    new Person() 
    { 
     PersonId = 123, 
     Name = "Tom", 
     Email = "[email protected]" 
    } 
}; 

var count = list1.Count; 
if(list1.Count.Equals(list2.Count)) 
{ 
    var i; 
    for(i=0; i< list1.Count; i++) 
    { 
     if(!list1[i].PersonId.Equals(list2[i])) 
     { 
      //DO somthing they lists are NOT SAME 
      //One of the Person object contain different ID 
     } 
    } 
} 
else 
{ 
    //DO somthing, list count is different.. 
} 

私はまた、文字列は、個人のIDであると2つの辞書のキーは、それが他の辞書に存在する場合、それは反復しません見て比べなければなりません

Dictionary<string, Person> 

キーと値のペアを使用してしようとして推薦します全体を少しずつ太くすることができます。

希望します。

関連する問題