最近在写一个排名的程序,排名投票的时候也没有限制用户,也就是说可以匿名的方式投给任何人,数据库中的数据很杂,有很多相同的人名,现在老大要求,把相同的人名进行筛选,只保留一个,但是其它同名的人的票数要进行累加到保留的那一个上边,最后选出前10名;
我想把它们全部统计后,筛选累加,然后存放到一个二维数组中,然后对这个二维数组进行排序,取出前10名,可对二维数组不是很会,现在是搞了好久,也没搞定,所以,现在来请教大家了,希望大家帮帮小弟,先谢谢了大概的数据是这样:
string[,] arr={{"小张","450"},{"大兴","513"},{"陈海","412"}...}
我想把它们全部统计后,筛选累加,然后存放到一个二维数组中,然后对这个二维数组进行排序,取出前10名,可对二维数组不是很会,现在是搞了好久,也没搞定,所以,现在来请教大家了,希望大家帮帮小弟,先谢谢了大概的数据是这样:
string[,] arr={{"小张","450"},{"大兴","513"},{"陈海","412"}...}
select top 10 * from (
select [name],sum(voteNum)newNum from tb
where [name]=[name]
group by [name])tt
order by newNum DESC
这样以后要用的时候,可以直接
select top 10 * from newtable order by newNum desc
用Hashtable做啊,名字是键,票数为值!
循环方式 根据 arr[0,1],arr[1,1],arr[2,1],arr[3,1]....以此类推
判断条件 是 arr[0,1] 装换成INT进行比较,然后换位排序
Hashtable studentIdScoreTable = new Hashtable(); studentIdScoreTable.Add(“小张”, 100);
.
.
.
.ArrayList studentScore = new ArrayList(studentIdScoreTable.Values); studentScore.Sort();
建议,写一个Item类,包含 Name,Value
然后每张票可以视为一个Item
写一个比较方法,之比较Value即可
使用Array.sort 比较