我有一个在c#中的字符串集合,例如:
var example = new string[]{"c", "b", "a", "d"};
我想对这个进行排序,但我的 IComparer 方法不起作用,并且循环似乎是无限的。
基本上,我需要让 "b"
第一个出现,其次是 "c"
,然后我不关心其他任何元素的顺序。
使用 IComparer<string>
和 Compare(string x, string y)
方法可以实现吗?
编辑:代码
public int Compare(string x, string y)
{
var sOrder = new string[] { "b", "c" };
int index_x = -1;
int index_y = -1;
for (int i = 0; i < sOrder.Length;i++)
{
if (sOrder[i] == x)
index_x = i;
else if (sOrder[i] == y)
index_y = i;
}
if (index_x >= 0 && index_y >= 0)
{
if (index_x < index_y)
{
return -1;
}
else
return 1;
}
return 0;
}