由於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();
謝謝!
由於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();
謝謝!
你的選擇是凸出來的字符串的集合,因爲您所呼叫的ToString()
這意味着,在您的排序依據的代-1λ「行」的值實際上將是一個字符串本身。你很可能只是做排序依據(R => R)
ddlMIP.DataSource = dt.AsEnumerable().Select(row => row.Field<string>("MIP_NO").ToString()).Distinct().OrderBy(row => row.Field("MIP_NO").ToString()).ToList();
它看起來像在排序依據()部分列表操作原因造成的問題。
哪裏出錯了;當涉及到排序時,您只剩下之前在.Select
方法中選擇的字符串集合。只需稍作更改即可輕鬆實現您要做的事情。以下將選擇字段MIP_NO
作爲字符串,然後將其分配給不同的有序可枚舉集合。
ddlMIP.DataSource = dt.AsEnumerable()
.Select(row => row.Field<string>("MIP_NO").ToString())
.Distinct()
.OrderBy(mipNo => mipNo);
謝謝,就是這樣! – Ted