我最近遇到了列表中元組的一些令人驚訝的行爲。看起來,列表中的Contains與我所期望的做了不同的比較。請有人能解釋一下這個區別嗎?C#元組平等vs列表中包含
Tuple<int,int> A = new Tuple<int, int>(5,5);
Tuple<int, int> B = new Tuple<int, int>(5, 5);
List<Tuple<int,int>> AList = new List<Tuple<int, int>>() {A};
bool C = AList.Contains(B); // returns true
bool D = A == B; // returns false
編輯1:解決複製標誌。我意識到==和.Equals是不同的函數,這裏令人驚訝的是List.Contains函數中的特定實現。
列表被調用'.Equals()'爲使得很多的比較,而不是''== – Rob