Exceptと Where句の違い
ExceptとWhereは、どちらもリストから要素を抽出するメソッドだ。メソッドの概要は似ているが、振る舞いが若干違うので備忘録としてメモする。
List<int> list1 = new List<int>(){ 3, 8, 5, 3, 30, 24 }; List<int> list2 = new List<int>(){ 30, 24 }; var result1 = list1.Where( n => list2.Contains( n ) ); => 3, 8, 5, 3 var result2 = list1.Except( list2 ); => 3, 8, 5
以下の動作をすることが確認できた。
- Except : 重複要素は削除する
- Where : 重複要素も区別せずに返す