protected void RefreshBucket(KBucket bucket) { bucket.Touch(); ID rndId = ID.RandomIDWithinBucket(bucket); // Isolate in a separate list as contacts collection for this bucket might change. List <Contact> contacts = bucket.Contacts.ToList(); contacts.ForEach(c => { var(newContacts, timeoutError) = c.Protocol.FindNode(ourContact, rndId); HandleError(timeoutError, c); newContacts?.ForEach(otherContact => node.BucketList.AddContact(otherContact)); }); }