private IList <T> GetBreadcrumbRecursive(IList <T> items, Guid id) { V_0 = items.GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = V_0.get_Current(); if (!Guid.op_Equality(V_1.get_Id(), id)) { V_2 = this.GetBreadcrumbRecursive(V_1.get_Items(), id); if (V_2 == null) { continue; } V_2.Insert(0, V_1); V_3 = V_2; goto Label1; } else { stackVariable24 = new List <T>(); stackVariable24.Add(V_1); V_3 = stackVariable24; goto Label1; } } goto Label0; } finally { if (V_0 != null) { V_0.Dispose(); } } Label1: return(V_3); Label0: return(null); }