2011-07-21 15 views
-1

可能性の重複:
comparing two List<>合流する2つのリスト<T>と比較

emp_db_snapshot - 過去に選択したものをユーザーの新しいコピーDBからロード:

emp_selected_by_user - ユーザが選択したリスト、ユーザはすでに選択されているものを変更したり、リストから削除できるリストに追加することができます:

//let say i have two rows in the list. 
List<Employee> emp_db_snapshot = new List<Employee>(); 
emp_db_snapshot = EmployeeListFromDB ; //loads the list from db 

//let say i have two rows in the list. 
List<Employee> emp_selected_by_user = new List<Employee>(); 
emp_selected_by_user = MySelectedEmployee //loads the list selected by user. 


//merging the two lists: 
//got total of 4 rows. 
List<Employee> allEmployee = emp_db_snapshot.Union(emp_selected_by_user).ToList(); 

ので、私の質問は:

どのように私は、差別や比較することができますか?

+1

私はあなたが差別化の面で何を探しているのか分かりません。重複を除外しますか?あるいは、両方のリストにどちらが存在するかを調べることができますか? –

+0

@Brian:彼は得られたリスト 'allEmployee'を調べて、各アイテムのデータベース(データベースまたはユーザによって選択されたもの)を調べることができるように思えます。 – Yuck

+0

あなたの最初のものをフォローアップするのではなく、同じ質問をしないでください。 – R0MANARMY

答えて

1

私は質問に答えようとします。

同じデータがいくつかある場合は、各コレクション間の相違点のコレクションを作成できます。

var DifferencesList = ListA.Where(x => !ListB.Any(x1 => x1.id == x.id)).Union(ListB.Where(x => !ListA.Any(x1 => x1.id == x.id))); 

私はその時点でコレクション間の交差点を見つけ、その結果を相違点のリストにマージすることができます。これにより、すべてのデータが一度しか表示されない単一のコレクションを持つことができます。

+0

それは私に何が欲しいのか分からなかった...私は2つのリストを持っているので、それぞれのリストは違うかもしれないし、同じかもしれない。だから私は何かがマッチするリストとマッチングしていないリストのリストである。 –

+0

@Abu Hamzah - それをする方法を教えてくれました。私が掲示したコードはあなたに相違の連合を列挙します。また、両方のコレクションが共通していることを見つけるために交差点を使用する必要があります。それは残りの部分を把握するのはあなた次第です。私は単純にあなたにすべての答えを与えることを拒否します。 –

関連する問題