由于order by子句,以下行不会编译。我在语法上做错了什么?
ddlMIP.DataSource = dt.AsEnumerable().Select(row => row.Field<string>("MIP_NO").ToString()).Distinct().OrderBy(row => row.Field<string>("MIP_NO").ToString()).ToList();
谢谢!
答案 0 :(得分:0)
你的select正在调用一串字符串,因为你正在调用ToString()
这意味着在你的OrderBy中,llambda中“row”的值实际上将是一个字符串本身。你可以只做OrderBy(r =&gt; r)
答案 1 :(得分:0)
ddlMIP.DataSource = dt.AsEnumerable().Select(row => row.Field<string>("MIP_NO").ToString()).Distinct().OrderBy(row => row.Field("MIP_NO").ToString()).ToList();
看起来OrderBy()部分中的list运算符导致了问题。
答案 2 :(得分:0)
你哪里出错了;当涉及到排序时,您只剩下先前在.Select
方法中选择的字符串集合。您可以通过微小的改动轻松实现您想要做的事情。以下将选择字段MIP_NO
作为字符串,然后将其分配给不同的有序可枚举集合。
ddlMIP.DataSource = dt.AsEnumerable()
.Select(row => row.Field<string>("MIP_NO").ToString())
.Distinct()
.OrderBy(mipNo => mipNo);