评论会员:游客 时间:2012/01/26
而不是数组列表,你可以使用数据表。你有一个选项,在数据表进行排序。codeprelang="vb"datatableavg=CreateDatatable()spanclass="code-comment"'/spanspanclass="code-comment"youhavetocreateadatatableherewiththestudentdetailsandgradeonecolumn.inyourfunctionihavenotspecifiedhowtocreateadatatable./spanspanclass="code-comment"'/spanspanclass="code-comment"thenuhavetosortbythebellowstatement./spandatatableavg.DefaultView.Sort=spanclass="code-string""/spanspanclass="code-string"grade"/spandatatableavg=spanclass="code-keyword"CType/span(datatableavg.DefaultView.ToTable(),DataTable)/pre/code然后DataTable将包含排序的值。你可以使用它。{C}然后访问的第一行,你必须使用下面的语句。codeprelang="vb"orow(spanclass="code-digit"0/span).Item(spanclass="code-string""/spanspanclass="code-string"gratde"/span).ToString()/pre/code
Jimmanuel
评论会员:游客 时间:2012/01/26
的递归方法。。源对象:codeprelang="cs"spanclass="code-keyword"class/spanMyObj{spanclass="code-keyword"public/spanspanclass="code-keyword"int/spanAnInteger;}/pre/code一个普通的递归排序功能:codeprelang="cs"spanclass="code-keyword"private/spanspanclass="code-keyword"static/spanspanclass="code-keyword"void/spanGetValues<T>(List<T>sourceList,spanclass="code-keyword"int/spaniter,List<T>resultList,Func<T,spanclass="code-keyword"bool/span>compareFunc){spanclass="code-keyword"if/span(iter>=sourceList.Count){spanclass="code-keyword"return/span;}spanclass="code-keyword"if/span(compareFunc(sourceList[iter])){resultList.Add(sourceList[iter]);}GetValues(sourceList,iter+spanclass="code-digit"1/span,resultList,compareFunc);}/pre/code和使用情况:codeprelang="cs"List<MyObj>myList=spanclass="code-keyword"new/spanList<MyObj>();spanclass="code-keyword"for/span(spanclass="code-keyword"int/spani=spanclass="code-digit"0/span;i<spanclass="code-digit"10/span;i++){myList.Add(spanclass="code-keyword"new/spanMyObj(){AnInteger=i});}List<MyObj>results=spanclass="code-keyword"new/spanList<MyObj>();GetValues(myList,spanclass="code-digit"0/span,results,obj=>obj.AnInteger<spanclass="code-digit"5/span);spanclass="code-keyword"foreach/span(MyObjobjspanclass="code-keyword"in/spanresults){Trace.WriteLine(spanclass="code-string""/spanspanclass="code-string"Obj:"/span+obj.AnInteger);}/pre/code但愿这是一个功课或某种锻炼,因为自己限制在这种情况下没有循环,没有LINQ是一种愚蠢的。这个递归的例子是远远不是明智的最佳解决方案的性能。此外,列表是首选以上的ArrayLists
西蒙杜福尔
评论会员:游客 时间:2012/01/26
如果你想一个简单的方法,你可以保持一个ArrayList,你知道是按职级排序。然后,你只能从一个循环,启动你的品位,而不是整个列表的末尾。该算法仍然是O(N),因为你必须在每个项目的循环。另一种方案是保持每个年级一个ArrayList。通过这种方式,发现所有的一年级的学生可以在O(1),但他们在屏幕上显示的是O(N)反正。而不是存储在一个ArrayList的东西,你可以把他们的数据库中..像一个Access数据库。然后,您可以使用一些简单的SQL迅速得到任何你想要的信息。这绝对是最好的解决办法。ArrayList中从未建立快速筛选或排序数据。
约翰西蒙斯/取缔程序员
评论会员:游客 时间:2012/01/26
更改列表(而不是到一个ArrayList),并编写相应的排序代表,或使用代码从这个技巧/诀窍:{A1}顺便说一句,这种气味就像一个家庭作业。只有学院教官将对项目鲁钝不要使用这些功能的要求。我的意思是,认真...
你可以尝试{A2}]方法