DataTable 过滤生成问题 本帖最后由 cuole009 于 2011-09-28 16:53:57 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如上图,前两条数据日期一样的,取出来存一个DATATABLE,29号的再取出来存一个 Select方法,datatable有Select方法,得到DataRow[],自己加到另一个datatable中 select (??)我取的是列值相同的数据 private IEnumerable<DataTable> Split(DataTable dt,String columnName) { var distinctValues = (from row in dt.AsEnumerable() select row[columnName]).Distinct(); //获取唯一值 foreach (var distinctValue in distinctValues) { DataTable result = dt.Clone(); DataRow[] rows = dt.Select(String.Format("{0}='{1}'", columnName, distinctValue)); //获取相同值的行 foreach (var dataRow in rows) { result.Rows.Add(dataRow.ItemArray); //复制值 } result.AcceptChanges(); yield return result; } } [Test] public void Test() { DataTable dt = new DataTable("test"); dt.Columns.Add("日期"); dt.Columns.Add("店别"); dt.Rows.Add("2011-09-28", "中关村"); dt.Rows.Add("2011-09-28", "中关村"); dt.Rows.Add("2011-09-29", "中关村"); var result = Split(dt, "日期"); Assert.AreEqual(2,result.Count()); } DataTable dt=new DataTable();//获取原有的datatable的值string strResult=dt1.Rows[i][j].Tostring();//i 行 j列 dt1原有的datatabledt.Culumns.Add("Test");dt.Rows.Add(strResulr); 可以尝试用dictionary,加入的时候用contain判断key值 select方法 自己 写条件 上面分别用 到了datatable 的select和linq相关 NHibernate如何映射组合键(composite-id) 如何做远程视频监控 连接问题!!! 类会自动释放资源嘛? 如何在每次页面更新都后自动执行一个脚本? 如何实现这样的效果! 菜鸟问题。。。。进来就给分!! 关于抓取网页数据 DataTable如何删除某一行之后的行 C# Combobox 当下拉列表关闭时,需要展示输入的数据,不选中第一个匹配的数据 C# 单引号 char FileStream 未能找到路径
private IEnumerable<DataTable> Split(DataTable dt,String columnName)
{
var distinctValues = (from row in dt.AsEnumerable()
select row[columnName]).Distinct(); //获取唯一值 foreach (var distinctValue in distinctValues)
{
DataTable result = dt.Clone();
DataRow[] rows = dt.Select(String.Format("{0}='{1}'", columnName, distinctValue)); //获取相同值的行
foreach (var dataRow in rows)
{
result.Rows.Add(dataRow.ItemArray); //复制值
}
result.AcceptChanges(); yield return result;
}
} [Test]
public void Test()
{
DataTable dt = new DataTable("test");
dt.Columns.Add("日期");
dt.Columns.Add("店别"); dt.Rows.Add("2011-09-28", "中关村");
dt.Rows.Add("2011-09-28", "中关村");
dt.Rows.Add("2011-09-29", "中关村"); var result = Split(dt, "日期");
Assert.AreEqual(2,result.Count());
}
//获取原有的datatable的值
string strResult=dt1.Rows[i][j].Tostring();//i 行 j列 dt1原有的datatabledt.Culumns.Add("Test");
dt.Rows.Add(strResulr);