Для начала я бы изменил CollectionBase и использовал List<T>
. CollectionBase был дополнением 1.0, которое больше не нужно из-за Generics. На самом деле, вам может даже не понадобиться ваш класс ContactCollection
, так как большинство методов, которые вам, вероятно, понадобятся, уже будут реализованы в реализации обобщений.
Тогда вы можете использовать LINQ:
var item = Collection.FirstOrDefault(x => x.Id == 15);
И если вы хотите сохранить их, тогда ваш класс ContactCollection
может быть просто оболочкой для List<T>
. Тогда код, который вы на самом деле должны написать, будет минимальным, так как универсальный будет выполнять большую часть работы.
Contact myPerson = Contact.GetContactById(15);
// get all contacts for the customer
ContactCollection contacts = customer.GetContacts();
// replaces the contact in the collection with the
// myPerson contact with the same ContactID.
contacts.ReplaceAt(myPerson);
// saves the changes to the contacts and the customer
// customer.Save();