項目我有被這些線引起我的代碼中的錯誤:排除用在哪裏,項目參考並不總是工作
var itemToExclude = _myList.First();
var nextList = _myList.Where(i => i != itemToExclude);
其中itemToExclude
仍然存在於nextList
。 我通過使用Skip(1)
而不是第二行來解決它,但是可能導致原始代碼無法工作?
使用的功能yield return
這可能與它有關。
itemsToExclude
是用類似
class RemainingItems
{
private readonly IEnumerable<MyObject> _myObjects;
public IEnumerable<MyObject> MyObjects { get { return _myObjects; } }
private readonly int _remaining;
public int Remaining { get { return _remaining; } }
public RemainingItems(IEnumerable<MyObject> myObjects, int remaining)
{
_myObjects = myObjects;
_remaining = remaining;
}
}
因爲我不明確,你可能必須重寫Equals運算符,以便成功比較where子句中的兩個實體,雖然在匹配列表元素(複雜與否)時我不必這樣做。 – Tommy
itemToExclude的類型是什麼? – Hogan
也許是一種不能支持*反身性的'Equals'方法? –