北京日报 2012-12-20
北京日报 2012-12-20
北京日报 2012-12-22
广州日报 2012-12-20
广州日报 2012-12-21
广州日报 2012-12-22
广州日报 2012-12-22
这个是我从一个你们都没听说过的数据库里面取出来的DataTable,大概有10W条,想做个排重。10W条循环一遍肯定是很慢的,对DataTable.Select语法又不熟,求解。
我自己折腾了一下没搞出来,group by time,source会丢失时间相同source不同的。
我想得到的结果是
source time
北京日报 2012-12-20
北京日报 2012-12-22
广州日报 2012-12-20
广州日报 2012-12-21
广州日报 2012-12-22
7 个解决方案
#1
这个select就写点简单的语句,别想着用它当sql用
#2
那有没有什么办法让这10W条数据做排重稍微快点?
#3
distinct
#4
用Linq 来做
#5
没听过的数据库???表示想知道什么数据库!
支持LS,用Linq
支持LS,用Linq
#6
select distinct(source),time from 表xx order by source,time
#7
我补充5L的详细过程
var result = from r in dt.AsEnumerable()
group r by new
{
source = r.Field<string>("source"),
time = r.Field<DateTime>("time")
} into g
select new
{
source = g.Key.source,
time = g.Key.time
};
DataTable newDt = dt.Clone();
foreach (var item in result)
{
DataRow dr = newDt.NewRow();
dr["source"] = item.source;
dr["time"] = item.time;
newDt.Rows.Add(dr);
}
newDt就是你想要的结果
var result = from r in dt.AsEnumerable()
group r by new
{
source = r.Field<string>("source"),
time = r.Field<DateTime>("time")
} into g
select new
{
source = g.Key.source,
time = g.Key.time
};
DataTable newDt = dt.Clone();
foreach (var item in result)
{
DataRow dr = newDt.NewRow();
dr["source"] = item.source;
dr["time"] = item.time;
newDt.Rows.Add(dr);
}
newDt就是你想要的结果
#1
这个select就写点简单的语句,别想着用它当sql用
#2
那有没有什么办法让这10W条数据做排重稍微快点?
#3
distinct
#4
用Linq 来做
#5
没听过的数据库???表示想知道什么数据库!
支持LS,用Linq
支持LS,用Linq
#6
select distinct(source),time from 表xx order by source,time
#7
我补充5L的详细过程
var result = from r in dt.AsEnumerable()
group r by new
{
source = r.Field<string>("source"),
time = r.Field<DateTime>("time")
} into g
select new
{
source = g.Key.source,
time = g.Key.time
};
DataTable newDt = dt.Clone();
foreach (var item in result)
{
DataRow dr = newDt.NewRow();
dr["source"] = item.source;
dr["time"] = item.time;
newDt.Rows.Add(dr);
}
newDt就是你想要的结果
var result = from r in dt.AsEnumerable()
group r by new
{
source = r.Field<string>("source"),
time = r.Field<DateTime>("time")
} into g
select new
{
source = g.Key.source,
time = g.Key.time
};
DataTable newDt = dt.Clone();
foreach (var item in result)
{
DataRow dr = newDt.NewRow();
dr["source"] = item.source;
dr["time"] = item.time;
newDt.Rows.Add(dr);
}
newDt就是你想要的结果