首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-09-07 
datatable里某列不相同数字的个数例如,datatable里id列里有如下数字:51 52 52 53 51,那么不同数字的个数为

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;} 

热点排行