读书人

datatable里某列不相同数目字的个数

发布时间: 2012-09-07 10:38:15 作者: rapoo

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的数据不是在数据库吗?
[解决办法]

探讨
回复2楼和3楼:

前提是不能使用LinQ,所以有点难度。

[解决办法]
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;} 

读书人网 >C#

热点推荐