我有数组字符串列表:按数字顺序排列数组列表然后按字母排序
"1A", "12A", "12B", "6", "A", "5B", "B", "13"
。
如果我做myList.Sort();
然后我得到:
"1A", "12A", "12B", "13", "5B", "6", "A", "B"
。
但我需要的是在前面的数字先排序,然后按字母:
"1A", "5B", "6", "12A", "12B", "13", "A", "B"
。
我可以用
public class CustomComparer : IComparer
{
Comparer _comparer = new Comparer(System.Globalization.CultureInfo.CurrentCulture);
public int Compare(object x, object y)
{
// Convert string comparisons to int
return _comparer.Compare(Convert.ToInt32(x), Convert.ToInt32(y));
}
}
但它抛出异常。我如何得到我所需要的?
“它会抛出异常”是远远不够的信息。什么是例外? –
由于某些字符串包含字母,因此如果不首先删除字母,则无法将它们转换为“int”。 – juharr
什么是您的'CurrentCulture'? –