datatable里某列不相同数目字的个数
datatable里某列不相同数字的个数
例如,datatable里id列里有如下数字:51 52 52 53 51,那么不同数字的个数为3。
或者 60 62 68 62 64,不同数字的个数为4.
有没有高效的算法得出这个数呢?
------解决方案--------------------
int count= dt.AsEnumerable().Select(t => t.Field<int>("id")).Distinct().Count();
------解决方案--------------------
LinQ即可
------解决方案--------------------
linq group
参考http://msdn.microsoft.com/zh-cn/library/bb384063.aspx
------解决方案--------------------
Linq不能用就用SQL啊。
table的数据不是在数据库吗?
------解决方案--------------------
------解决方案--------------------
例如,datatable里id列里有如下数字:51 52 52 53 51,那么不同数字的个数为3。
或者 60 62 68 62 64,不同数字的个数为4.
有没有高效的算法得出这个数呢?
------解决方案--------------------
int count= dt.AsEnumerable().Select(t => t.Field<int>("id")).Distinct().Count();
------解决方案--------------------
LinQ即可
------解决方案--------------------
linq group
参考http://msdn.microsoft.com/zh-cn/library/bb384063.aspx
------解决方案--------------------
Linq不能用就用SQL啊。
table的数据不是在数据库吗?
------解决方案--------------------
------解决方案--------------------
- C# code
private int getCount() { DataTable dt = XXX(); ArrayList ArrDistinct = new ArrayList();//唯一值集合 for (int i = 0; i < dt.Rows.Count; i++) { if(!ArrDistinct.Contains(dt.Rows[i]["id"].ToString())) { ArrDistinct.Add(dt.Rows[i]["id"].ToString()); } } return ArrDistinct.Count; }