private SyntaxList <T> Sort <T>(SyntaxList <T> members) where T : SyntaxNode { List <MethodSortInfo <T> > list = MethodSortInfo <T> .FromSyntaxList(members); list.Sort(new MethodSortInfoComparer <T>()); return(MethodSortInfo <T> .ToSyntaxList(list)); }
public int Compare(MethodSortInfo <T> x, MethodSortInfo <T> y) { //check type int xTypePriority = this.GetTypePriority(x.Kind); int yTypePriority = this.GetTypePriority(y.Kind); if (xTypePriority != yTypePriority) { return(xTypePriority - yTypePriority); } //for known types check name if (yTypePriority != UndefinedPriority) { int val = _stringComparer.Compare(x.Name, y.Name); if (val != 0) { return(val); } } //check old index return(x.Index - y.Index); }