+----+-------+----------+----------+
| id | keyid | 主组名称 | 副组名称 |
+----+-------+----------+----------+
| 24 | 0 | 默认 | 属于默认 |
| 24 | 0 | 默认 | 默认 |
| 16 | 1 | 上海 | |
| 16 | 1 | 上海 | |
| 16 | 1 | 上海 | |
| 17 | 2 | 深圳 | |
| 17 | 2 | 深圳 | |
| 17 | 2 | 深圳 | 坂田 |
| 21 | 6 | 陕西 | 西安 |
+----+-------+----------+----------+ds.tables[0]里面的数据如上所示,
现在想要的效果是比如主组上海,副组里有三个空行,则保留一个空行;
主组深圳,副组两个空行,一个是坂田,这种情况则删除空行
要的效果是:
+----+-------+----------+----------+
| id | keyid | 主组名称 | 副组名称 |
+----+-------+----------+----------+
| 24 | 0 | 默认 | 属于默认 |
| 24 | 0 | 默认 | 默认 |
| 16 | 1 | 上海 | |
| 17 | 2 | 深圳 | 坂田 |
| 21 | 6 | 陕西 | 西安 |
+----+-------+----------+----------+求达人指教,提供源码,谢谢。
| id | keyid | 主组名称 | 副组名称 |
+----+-------+----------+----------+
| 24 | 0 | 默认 | 属于默认 |
| 24 | 0 | 默认 | 默认 |
| 16 | 1 | 上海 | |
| 16 | 1 | 上海 | |
| 16 | 1 | 上海 | |
| 17 | 2 | 深圳 | |
| 17 | 2 | 深圳 | |
| 17 | 2 | 深圳 | 坂田 |
| 21 | 6 | 陕西 | 西安 |
+----+-------+----------+----------+ds.tables[0]里面的数据如上所示,
现在想要的效果是比如主组上海,副组里有三个空行,则保留一个空行;
主组深圳,副组两个空行,一个是坂田,这种情况则删除空行
要的效果是:
+----+-------+----------+----------+
| id | keyid | 主组名称 | 副组名称 |
+----+-------+----------+----------+
| 24 | 0 | 默认 | 属于默认 |
| 24 | 0 | 默认 | 默认 |
| 16 | 1 | 上海 | |
| 17 | 2 | 深圳 | 坂田 |
| 21 | 6 | 陕西 | 西安 |
+----+-------+----------+----------+求达人指教,提供源码,谢谢。
{
if(dr["副组名称"]==null || dr["副组名称"].ToString()==string.Empty)
dr.Delete();
}
foreach (DataRow dr in dt.Rows)
list.Add(dr); List<DataRow> list1 = list.Distinct(new Compare()).ToList(); public class Compare : IEqualityComparer<DataRow>
{
public bool Equals(DataRow dr1,DataRow dr2)
{
if (dr1[0] == dr2[0] && dr1[1]== dr2[1])
return true;
return false;
} public int GetHashCode(DataRow obj)
{
return obj.ToString().GetHashCode();
} }
否则会一直不相等。
虽然没有完全解决问题,不过思路已经对了,结贴。