我有一个字符串列表,每个字符串的长度都是2个字符。我想对它进行分类。 我首先使用使用LINQ和函数进行自定义排序
.OrderBy(e => e[0])
每个字符串的第一个字符列表进行排序,但我的问题是排序第二个字符的时候,是这样的:
.ThenBy(string1 => string1, string2 => string2 Compare(string1,string2)
我想选择两个字符串,并通他们到我创建的称为比较的函数。
有人可以告诉我怎么做,或者如果有更好的方式做我想做的事吗? 请分享。
public string sortT(string h)
{
var sortedList = l
.OrderBy(e => e[0])
.ThenBy()
.ToList<string>();
return sb.ToString();
}
private int Compare(string a, string b)
{
List<char> value = new List<char>() {
'2', '3', '4', '5', '6', '7', '8', '9','J','Q', 'K', 'A' };
if (value.IndexOf(a[1]) > value.IndexOf(b[1]))
return 1;
return -1;
}
为什么不'ThenBy(str => str [1])'? – 2014-09-05 07:56:37
,因为[J-A]的ascii值与我所需要的不一样。 'A'被认为是我的问题的最大值,但它的ASCII值是65(小于J = 74)。因此列表指定正确的顺序。 –
TheJackal
2014-09-05 07:58:53
一个例子会很有用,因为它不清楚究竟是什么问题或者你想要什么样的顺序。 – 2014-09-05 08:00:36