怎么读取DataTable某一列的值?然后用c#代码判断是否有重复数据?linq还是怎么做呢?

如题所述

public static void cs()
        {
           
            System.Data.DataTable dt = new System.Data.DataTable();
            dt.Rows.Add("");
            var quer = from tb in dt.AsEnumerable()
                                        group tb by tb.Field<string>("xx") into x
                                        select new{ 
                                            a=x.Key,
                                            b=x
                                        };
            foreach(var c in quer)
            {
                int i = 0;
                foreach(var d in c.b)
                {
                    i++;
                }
                if(i>1)
                {
                    //有重复
                }
            }
            for (int i = 0; i < dt.Rows.Count;i++ )
            {
                var qu = from tb in dt.AsEnumerable()
                         where tb.Field<string>("xx") == dt.Rows[i]["xx"].ToString()
                         select tb;
                if (qu.Count() > 1)
                {
                    //有重复
                }
            }
        }

两种方法 看你喜欢哪种

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-17

               

            

DataTable dt = new DataTable(); 
var q  = from item in dt.AsEnumerable()      
  select item.Field<string>("").Distinct();  
  if (q.Count() < dt.Rows.Count)        
  {                
  //有重复             
  }

                         

怎么读取DataTable某一列的值?然后用c#代码判断是否有重复数据?linq还 ...
public static void cs() { System.Data.DataTable dt = new System.Data.DataTable(); dt.Rows.Add(""); var quer = from tb in dt.AsEnumerable() group tb by tb.Field<string>("xx") into x select new{ ...

C#中怎么多datatable中某列中升序排列的数据按照指定的差值分组?
在 C# 中,你可以使用 LINQ 查询来实现这一目的。首先,你需要使用 OrderBy 方法将数据表中的数据按照指定的列升序排列。然后,你可以使用 GroupBy 方法将数据分组,按照指定的差值分组。例如,假设你有一个名为 dataTable 的数据表,其中包含一列名为 value 的数值数据,你想将这些数据按照每 5 个为...

使用Linq查询DataTable某列数据
select c.num).Sum();return Convert.ToInt32(q);

在C#中怎么用lamda取得datatable中的某几列,计算这几列的和?
linq:from s in datatable select s.math,s.chinese,s.physics lamda:datatable.select( s=>s.math,s.chinese,s.physics)注意:DataTable要实现IEnumerable接口

C#在datatable中怎么筛选数据?
DataTable可以通过select来筛选数据 datatable.select("");你的需求貌似需要分组可以用linq

我有一个datatable集合 用linq 怎么通过其中的二列得到该二列重复的...
public String phone;public String id;} class RepeatGroup { public String code;public String id;public List<Group> Groups;public RepeatGroup(String c,String i){ code=c;id=i;Groups=new List<Group>();} } List<RepeatGroup> GetRepeat(List<Group> groups){ List<RepeatGroup> repeats...

C#datatable的问题,datatable1(dt1)主表datatable2(dt2)次表
2、如果存在唯一性 Key 的话(可以理解为主键),那么把 dt2 中的这些 Key 取出,从 dt1(或其副本)中删除,剩下的自然就是非重复项。3、先对两表中的某一字段进行排序,然后用二分法做检索,相当于对第一种方法做了搜索优化。4、如果是 .NET 3.5 或以上,可以利用 Linq:var dt3 = from ...

asp.net怎么计算datatable某一列的平均值,而不用一个一个的取出来...
使用linq dt.Rows.Cast<DataRow>().Average(r => r.Field<decimal>("col1"));

c#,datatable中对时间的过滤过滤
比较时间可以在数据库比较或者取回数据后在程序比较,在数据库比较会更理想。用between是可以的,不过between前后的数据类型必须和数据本身都是date类型,串是没法between的,数字当日起比对也不会正确。你说你用>可以,<是空,那> and <肯定是空,我想问题还是出在你的数据类型上,检查是不是都是date ...

c#熟悉DataTable的朋友来看一个问题,如何直接设置某一列的值全部为str...
DataTable dt=new DataTable();dt.Columns[1]=String.Empty;错误1无法对属性或索引器“System.Data.DataColumnCollection.this[int]”赋值 -- 它是只读的C:\\Users\\gostop\\Documents\\Visual Studio 2008\\Projects\\calc\\calc\\Form1.cs5813calc 所以是不能直接赋值的。

相似回答