我想知道如何可以排序字符串[根据特定字符串的位置]的项排序的字符串数组。例如我想通过子串以下数组进行排序 “ - ”根据字符串的位置(C#)
输入:{XX - C,XXXXX - B,YYY - 一个,mlllll - d}
预期输出:{YYY - 一个, XXXXX - b,XX - C,mlllll - d}
我至今如下:
public string[] SortByStringPos(string[] arr, string str, bool ascending)
{
if (ascending)
{
var result = from s in arr
where s.Length >= s.IndexOf(str)
orderby s[s.IndexOf(str)] ascending
select s;
return result.ToArray();
}
else
{
var result = from s in arr
where s.Length >= s.IndexOf(str)
orderby s[s.IndexOf(str)] descending
select s;
return result.ToArray();
}
}
有人可以请给我一个提示...?
它看起来像你想通过这封信后'-'来排序,不是由'-'的位置,这是一样的在所有的字符串? – Esailija
所以你想要的是字符串数组进行排序,只基于它的字符串的最后一部分?因此,例如忽略前4个字符? “ - ”(或在你的情况,只是后面的部分?” –
OK对不起,我是不是specifing还不够清楚,我想在那里过一个给定的字符串X首次出现时字符串[]内的所有项目进行排序如果X没有在项目Y存在,那么就要把Y在新的String []的结束。 我现在希望它更清楚......? – oren