排序列表<string []> </string []>

时间:2011-01-20 19:52:49

标签: c#

如何按字符串[0]中的值按字母顺序对List进行排序?

3 个答案:

答案 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.
}