次の行は、orderby句のためにコンパイルされません。構文で何が間違っていますか?
ddlMIP.DataSource = dt.AsEnumerable().Select(row => row.Field<string>("MIP_NO").ToString()).Distinct().OrderBy(row => row.Field<string>("MIP_NO").ToString()).ToList();
ありがとう!
ToString()を呼び出しているため、selectは文字列のコレクションを投影しています。
つまり、OrderByでは、llambdaの「row」の値は実際には文字列そのものになります。あなたはおそらくOrderBy(r => r)を行うことができます
ddlMIP.DataSource = dt.AsEnumerable().Select(row => row.Field<string>("MIP_NO").ToString()).Distinct().OrderBy(row => row.Field("MIP_NO").ToString()).ToList();
OrderBy()セクションのリスト演算子が問題の原因になっているようです。
あなたが間違っているところ; 順序付けに関しては、メソッドで以前に選択された文字列のコレクションのみが残ります.Select
。あなたがやろうとしていることは、小さな変更で簡単に達成することができます。以下では、フィールドMIP_NO
を文字列として選択し、それを個別の順序付けられた列挙可能なコレクションに割り当てます。
ddlMIP.DataSource = dt.AsEnumerable()
.Select(row => row.Field<string>("MIP_NO").ToString())
.Distinct()
.OrderBy(mipNo => mipNo);