C# 在Gridview行中按自定义订单
我想按如下方式订购我的gridview 产品名称C# 在Gridview行中按自定义订单,c#,gridview,C#,Gridview,我想按如下方式订购我的gridview 产品名称 FL - STATEWIDE (Primary) FL - LEE COUNTY FL - OKALOOSA COUNTY MS - STATEWIDE (Primary) MS - KENT COUNTY 我不能按产品订货。因为如果产品名称中包含单词primary,那么它应该放在第一位 我怎样才能做到这一点 一旦读入数据表,就可以使用LINQ对其进行排序 dtbl = ( from i
FL - STATEWIDE (Primary)
FL - LEE COUNTY
FL - OKALOOSA COUNTY
MS - STATEWIDE (Primary)
MS - KENT COUNTY
我不能按产品订货。因为如果产品名称中包含单词primary,那么它应该放在第一位
我怎样才能做到这一点 一旦读入数据表,就可以使用LINQ对其进行排序
dtbl = (
from item in dtbl.AsEnumerable()
select item
).OrderBy(x => x.Field<string>("Product Name").Contains("Primary") ? 0 : 1).
ThenBy(x => x.Field<string>("Product Name")).CopyToDataTable();
dtbl=(
来自dtbl.AsEnumerable()中的项
选择项
).OrderBy(x=>x.Field(“产品名称”)。包含(“主”)?0:1)。
然后是(x=>x.Field(“产品名称”)).CopyToDataTable();
输出
佛罗里达州-全州(小学)
MS-全州(小学)
佛罗里达州李县
佛罗里达-奥卡洛萨县
MS-肯特县
如果您需要先按州订购(主要在顶部)
dtbl=(
来自dtbl.AsEnumerable()中的项
选择项
).OrderBy(x=>x.Field(“产品名称”).Substring(0,2))
然后(x=>x.Field(“产品名称”)。包含(“主”)?0:1)。
然后是(x=>x.Field(“产品名称”)).CopyToDataTable();
输出
佛罗里达州-全州(小学)
佛罗里达州李县
佛罗里达-奥卡洛萨县
MS-全州(小学)
MS-肯特县您能否根据此条件添加上述产品的预期订单:
如果产品名称中包含单词primary,则应将其放在第一位。
?是,佛罗里达州-全州(primary)is包含单词primary,因此它首先出现,然后是FL-LEE县和FL-OKALOOSA县。您可以告诉我们数据来源是什么。。。表,集合列表。。。等等@ChrisHammond这是数据table@Golda数据实际存储在哪里。。。如果是在数据库中,而不是我下面的答案,在datatable上使用LINQ,您能不能不在SQL Select语句中对其排序?我面临一个问题MS-全州(主要)下一个值是MISSISSIPPI。如何做到这一点。它首先显示MISSISSIPPI next MS-STATEWIDE(Primary)@Golda,除非名称中存在某种一致性,否则基本排序例程将无法工作,因此您需要创建一个自定义
dtbl = (
from item in dtbl.AsEnumerable()
select item
).OrderBy(x => x.Field<string>("Product Name").Substring(0,2))
ThenBy(x => x.Field<string>("Product Name").Contains("Primary") ? 0 : 1).
ThenBy(x => x.Field<string>("Product Name")).CopyToDataTable();