Note that there are some explanatory texts on larger screens.

plurals
  1. POC# - List<T>.Remove() always deletes the first object on the list
    primarykey
    data
    text
    <p>Working in Visual Studio 2008 (C#)... I use a List collection to store instances of my custom class (Shift). </p> <p>I want to delete a certain shift from the list by using the Remove method.</p> <p>But List.Remove() always deletes the first item it finds.</p> <p>I've implemented the IComparable interface for my Shift, I thought this would be enough, then I added an implementation of IEqualityComparer, and it still has no effect.</p> <p>Here's the excerpt with my implementation:</p> <blockquote> <p>region IComparable Members </p> <pre><code> public int CompareTo(object obj) { Shift s1 = this; Shift s2 = (Shift)obj; if (s1.start.time != s2.start.time) return s1.start.CompareTo(s2.start); else return s1.end.CompareTo(s2.end); } </code></pre> <p>endregion</p> <p>region IEqualityComparer Members</p> <pre><code> public bool Equals(Shift x, Shift y) { if ((x.opening) != (y.opening)) return false; if ((x.closing) != (y.closing)) return false; if (!x.opening) if (x._start != y._start) return false; if (!x.closing) if (x._end != y._end) return false; if (x.when != y.when) return false; if (x.day != y.day) return false; if (x.EmployeeID != y.EmployeeID) return false; return true; } public int GetHashCode(Shift obj) { return obj.ToString().ToLower().GetHashCode(); } </code></pre> <p>endregion</p> </blockquote> <p>And yet, still - when the List contains two shifts, say "8:00 - 15:00"; "12:00 - 16:00", calling Remove("12:00-16:00") results in "8:00 - 15:00" getting removed, and the latter one remains in the collection!</p> <p>What's wrong here? Thx</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload