private BucketItem ProcessNestedBucket(Bucket bucket) { foreach (string key in bucket.Items.Keys) { BucketItem childItem = bucket.Items[key]; if (childItem.Value != null && !childItem.IsVisited) { childItem.IsVisited = true; return childItem; } if (childItem.Child != null) { return ProcessNestedBucket(childItem.Child); } } return null; }