2012-05-15 37 views
0

由於order by子句,下面這行不會編譯。我在做什麼錯誤的語法?通過語法的LINQ順序

ddlMIP.DataSource = dt.AsEnumerable().Select(row => row.Field<string>("MIP_NO").ToString()).Distinct().OrderBy(row => row.Field<string>("MIP_NO").ToString()).ToList(); 

謝謝!

回答

0

你的選擇是凸出來的字符串的集合,因爲您所呼叫的ToString()

這意味着,在您的排序依據的代-1λ「行」的值實際上將是一個字符串本身。你很可能只是做排序依據(R => R)

+0

謝謝,就是這樣! – Ted

0
ddlMIP.DataSource = dt.AsEnumerable().Select(row => row.Field<string>("MIP_NO").ToString()).Distinct().OrderBy(row => row.Field("MIP_NO").ToString()).ToList(); 

它看起來像在排序依據()部分列表操作原因造成的問題。

0

哪裏出錯了;當涉及到排序時,您只剩下之前在.Select方法中選擇的字符串集合。只需稍作更改即可輕鬆實現您要做的事情。以下將選擇字段MIP_NO作爲字符串,然後將其分配給不同的有序可枚舉集合。

ddlMIP.DataSource = dt.AsEnumerable() 
    .Select(row => row.Field<string>("MIP_NO").ToString()) 
    .Distinct() 
    .OrderBy(mipNo => mipNo);