
实在想做的话,尝试newslist = newslist.OrderBy(x=>x.nID).ToList().Distinct()
将数据加载入内存,用CLR来做DISTINCT
假设你上图表格数据为datatable
dt,列分别为aa,bb,cc,dd
var
query
=
from
p
in
dt.asenumerable()
//分组
group
p
by
new
{
t1
=
p.field
("aa").tostring().substring(0,
p.field
("aa").tostring().length
-
2),
t2
=
p.field
("bb"),
t3
=
p.field
("cc")
}
into
g
select
new
{
cola
=
g.key.t1,
colb
=
g.key.t2,
colc
=
g.key.t3,
cold
=
g.sum(c
=>
c.field
("dd"))
}
//转datatable
datatable
dtnew
=
dt.clone()
datarow
drnew
foreach
(var
p
in
query)
{
drnew
=
dtnew.newrow()
drnew["aa"]
=
p.cola
drnew["bb"]
=
p.colb
drnew["cc"]
=
p.colc
drnew["dd"]
=
p.cold
dtnew.rows.add(drnew)
}
dtnew
为最终结果
注:转换过程中要考虑空值的情况
//导入linq命名空间,然后distinct一下就可以了.关键代码如下:
usingSystem.Linq
//比如,list实例为list
varobj=list.Distinct()
//或者麻烦点要根据list的字段xxx过滤就是
varobj_1=frompinlistselectp.xxxdistinct()
扩展资料
list()函数与array()类似,只是它可以在一次 *** 作中从一个数组内提取多个值,同时为多个变量赋值。其形式如下:
voidlist(mixed?)从数据库或文件中提取信息时,这种构造尤其有用。例如,假如你希望格式化并输出从一个文本,文件中读取信息。文件的每一行都包含用户信息,如姓名、职业和喜爱的颜色,每一项用竖线分隔。典型的一行如下所示:
NinoSanzi|profesionalgolfer|green
可以通过一个简单的循环使用list()来读取每一行,将各部分数据赋给变量,按照需要格式化并输出数据。
参考资料来源:百度百科:list
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)