一个表route记录了某个IP地址各个时段的下行速率、下载、上传总字节等信息,想要查询反回所有IP地址下行速率为最大时那行数据,写了以下代码,反回是正确的。但是这样写法总感觉不是好的写法,想请高人指导一下,给个更优化的代码。
DataTable dt = dataSet.Tables["route"];
var query = (from row in dt.AsEnumerable() select new { rowIpAdess = row.Field<string>("IP地址") }).Distinct(); foreach (var row in query)
{ List<DataRow> drs = (from d in dt.AsEnumerable() where d["下行速率"].ToString() == (from f in dt.AsEnumerable()
where f["IP地址"].ToString() == row.rowIpAdess.ToString()
select f).Max(p => p["下行速率"]).ToString()
select d).ToList();
}
DataTable dt = dataSet.Tables["route"];
var query = (from row in dt.AsEnumerable() select new { rowIpAdess = row.Field<string>("IP地址") }).Distinct(); foreach (var row in query)
{ List<DataRow> drs = (from d in dt.AsEnumerable() where d["下行速率"].ToString() == (from f in dt.AsEnumerable()
where f["IP地址"].ToString() == row.rowIpAdess.ToString()
select f).Max(p => p["下行速率"]).ToString()
select d).ToList();
}
解决方案 »
- 悬赏100分 Tab符转换成空格符问题,求解决。
- C# 对象垃圾回收 问题探讨
- Invalid number of data directories in NT header.反编译DLL的时候显示这个.怎么解决?
- 請問如何在一個繼承的控件裏為父類的某個屬性定義DefaultValueAttribute???
- 请问如何调用DLL中的窗体,使它成为一个MDI子窗体?给一个示例.
- 如何同时终止多个线程?
- 如何判断两个泛型的 "开放" 类型 是否为继承关系
- 求助高手出现 远程控制的问题
- 在拖放操作中如何实现虚框效果?
- 【开源下载】基于TCP网络通信的即时聊天系统(IM系统)(c#源码)
- winform 程序中怎么设置button属性为不可用?
- 急!关于无向图中查找路径问题。
DataTable 里边可以编译 sql?
另外,我有个“怪癖”,就是非常不爱看到随便写“.ToString()”代码的程序。如果你知道一个object变量是string类型的,那么就直接转换其类型,例如写 (string)row["abc"]。调用一个对象的.ToString()函数跟强制转换为string,是完全不同的概念,得到的结果也不尽相同。
var query = (from row in dt.AsEnumerable() select new { rowIpAdess = row.Field<string>("IP地址") }).Distinct(); foreach (var row in query)
{
DataRow[] dr = dataSet1.Tables["routestata"].Select("IP地址='" + row.rowIpAdess.ToString() + "'"); object max = dr.Max(p => p["下行速率"]); object d = dr.Where(p => p["下行速率"]==max);
}