如何按字符串[0]中的值按字母顺序对List进行排序?
答案 0 :(得分:14)
尝试
list.Sort((s, t) => String.Compare(s[0], t[0]));
这将按照list
中每个数组的第一个元素按字典顺序排序。
由于我不确切地知道“字母数字”的含义,如果你需要一个比较路由的自定义字符串,你应该这样做:
class MyStringComparer : IComparer<string> {
public int Compare(string s, string t) {
// details elided
}
}
然后
var comparer = new MyStringComparer();
list.Sort((s, t) => comparer.Compare(s[0], t[0]));
答案 1 :(得分:2)
查看此链接here
他们有一个很好的IComparer接口示例。 您可以使用它创建自己的Comparer并通过它运行您的列表。
答案 2 :(得分:-1)
这是一个非常简单的/伪代码示例......真的在这里拉伸......
MyclassZeroIndexComparer : IComparable, IList(Of String[])
{
private List<String[]> listOfStringArrays;
//expose this as a public member somewhere...
private List<String[]> listofStringArrayZeroIndex;
//internally store a list of only the first item you want to index....
//implement your own, add,remove,clear
void Add(foo item)
{
listofStringArrays.Add(Item);
listofStringArrayZeroIndex.add(item[0]);
}
// continue implementing other methods in the same manner.
}