ASP.netでやってますが、C#の内容で質問しておりますリストに追加・削除する前のリスト=listBefore、した後のリスト=listAfterで違いを比較して調べる処理を作っています。下記の通りに処理すると、なぜかlistBeforeとlistAfterともに3つのリストになってしまいます。getResult=〇〇//SQLで取ったList<class>のリスト。変えませんかとか余計なことは言いません。実際の(あなたが動作させた)コードとデーターとで検証できないので、確かなことは言えませんが、在り得る話として聞いてください。指しているインスタンスとが同じものだからではないかと考えます。同じインスタンスを参照していることが原因かと思います。Listを別のインスタンスとしてコピーする方法は下記が参考になると思います。getResult=〇〇//SQLで取ったList<class>のリスト。今回は4つのリストが入ってます提示頂いたコードは、文法違反のエラーになりそうですね。