Я явно что-то здесь упускаю ... У меня есть общий список объектов, и я пытаюсь использовать лямбда-выражение для удаления элементов. Когда я использую приведенный ниже код, я получаю следующее исключение.
System.InvalidOperationException: последовательность не содержит соответствующего элемента
public class MyObject {
public Guid ID1 {get;set;}
public int ID2 {get;set;}
}
public class MyContainer{
List<MyObject> myList = new List<MyObject>();
public MyObject Get(Guid id1) {
return myList.Single(mo => mo.ID1 == id1);
}
public void AddItem(MyObject item) {
myList.Add(item);
}
public int RemoveItems(MyObject item) {
return myList.RemoveAll(mo => mo.ID1 == item.ID1 || mo.ID2 == item.ID2);
}
}
Я ошибаюсь, используя лямбду?
[EDIT]
Ну, провал на первый вопрос. Я неправильно прочитал трассировку стека, после удаления элемента в моем модульном тесте я попытался вызвать метод Get (), и в моем гневе «почему уже темно» бросило вызов при публикации вопроса без соответствующего анализа. К сожалению.