【发布时间】:2018-02-15 17:50:12
【问题描述】:
例如,我在 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;
}
【问题讨论】:
-
是的,有可能。我们需要查看您的代码才能告诉您它为什么不起作用...
-
好的,这里还有很多信息缺失。没有一个字符的字符串会发生什么?您想对字符串或单个字符强制执行此排序吗?等等……