2011-01-20 69 views
5

如何對字符串[0]中的值按字母順序排序列表?排序列表<String[]>

+0

@jball:這不是第一個字符。每個元素都是一個字符串數組,他按這些數組的第一個元素進行排序。想象一下,例如,一本書的索引。每行可以是一個`string []`,其中第一個元素表示被索引的單詞,其餘元素是頁碼。這裏按照第一個元素排序是有意義的。 – jason 2011-01-20 19:58:51

+0

我與@jball。 – 2011-01-20 20:00:24

回答

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])); 
2

起飛看看這個鏈接here

他們有一個非常好的IComparer接口的例子。 你可以使用它創建你自己的比較器並通過它運行你的列表。

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