Ich möchte C# -Liste mit benutzerdefinierten Vergleich sortieren. Ich habe eine Liste der TreeNodes und möchte sie mit der Anzahl der untergeordneten Knoten (TreeNode.GetNodeCount (true)) sortieren, aber Knoten mit < = 2 Knoten zählen sollte am Ende gesetzt werden. Mit Code unten funktioniert es manchmal, aber manchmal bekomme ich die Ausnahme, dass der Vergleich falsch ist, weil die Vergleichsausgabe falsch ist.C# IComparer benutzerdefinierte Sortierliste mit Child Count mit unterschiedlicher Bedingung
Mein aktueller Code ist:
public class XPathComparer : IComparer<TreeNode>
{
public int Compare(TreeNode x, TreeNode y)
{
if (
(x != null && x.GetNodeCount(true) <= 2) ||
(y != null && y.GetNodeCount(true) <= 2)
)
return -1;
return x.GetNodeCount(true).CompareTo(y.GetNodeCount(true));
}
}