private static IEnumerable <IGrouping <BodyPartRecord, Hediff> > VisibleHediffGroupsInOrder(Pawn pawn, bool showBloodLoss) { foreach (IGrouping <BodyPartRecord, Hediff> group in from x in HealthCardUtility.VisibleHediffs(pawn, showBloodLoss) group x by x.Part into x orderby HealthCardUtility.GetListPriority(x.First <Hediff>().Part) descending select x) { yield return(group); } }
private static IEnumerable <IGrouping <BodyPartRecord, Hediff> > VisibleHediffGroupsInOrder(Pawn pawn, bool showBloodLoss) { using (IEnumerator <IGrouping <BodyPartRecord, Hediff> > enumerator = (from x in HealthCardUtility.VisibleHediffs(pawn, showBloodLoss) group x by x.Part into x orderby HealthCardUtility.GetListPriority(x.First().Part) descending select x).GetEnumerator()) { if (enumerator.MoveNext()) { IGrouping <BodyPartRecord, Hediff> group = enumerator.Current; yield return(group); /*Error: Unable to find new state assignment for yield return*/; } } yield break; IL_0103: /*Error near IL_0104: Unexpected return in MoveNext()*/; }