private List nodes = new List();
在类型为string的ISilverNodeModel类中有一个标签字段.
假设节点列表是:
Malcolm,Sym,Eric,Sandrea
我希望马尔科姆和桑德雷总是排在最前面并休息以便进行排序.
我这样做但它排序所有:
nodes.Sort((node1,node2)=> node1.Label.CompareTo(node2.Label));
您可以编写自己的IComparer,并在Sort方法中使用该实现.
然后,您的实施可以确定马尔科姆和桑德拉总是小于任何其他标签.
public class MySorter : IComparer<ISilverNodeModelClass>
{
public int Compare( ISilverNodeModelClass left, ISilverNodeModelClass right )
{
if( left.Label.Equals (right.Label) )
return 0;
if( left.Label == "malcolm" || left.Label == "sandra" )
return Int32.MinValue;
if( right.Label == "malcolm" || right.Label == "sandra" )
return Int32.MaxValue;
return Comparer<string>.Default.Compare (left.Label, right.Label);
}
}
Run Code Online (Sandbox Code Playgroud)