List集合在开发过程中很常见,经常我们要对该集合进行一系列操作,本文介绍如何将该集合内的元素进行排序,博主制作简单WinForm应用程序进行演示。

首先,我们来看一下c#泛型List提供的Sort方法:
这里有泛型List类的Sort方法的三种形式,分别是
1,不带有任何参数的Sort方法----Sort();

这种排序List中的元素必须继承IComparable接口,并且要实现IComparable接口中的CompareTo()方法,在CompareTo()方法中要实现比较规则。

Int32和Double都是实现了IComparable接口并重载了CompareTo方法的结构。因此List<int>就可以直接进行排序。

2,带有比较器参数的Sort方法 ----Sort(IComparer<T>)

此种排序方法必须另外写一个额外的比较器类,该类必须实现IComparer接口,因为该接口有用于比较的重载函数Compare,所以我们必须实现它来完成自己希望的比较,例如自己定义一个学生类Student,改类中有ID、姓名、年龄等属性,我们可以选择年龄属性作为排序属性

3,带有比较器参数,可以指定排序范围的Sort方法----Sort(Int32, Int32 IComparer(T))

界面:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAi0AAAF3CAIAAADmduwpAAAgAElEQVR4nO3da3Bc5Zng8ffTJpvd1GRntQzD8mFKNWXIDnwIhqq5bDJVCMhibmFUY24D5qoMTILlQFuBEJuQiiwwtiSCB2wwFuGScAkJMxDSNthtbMAGgmkbjDEWtqXGlg8yPqglpaolov3Q0umj95zz9qNW67zu4/+vnlKdPv2eS3ep9E/LSaSGAQCwR2mPTwcAYIadeOKJxx9/vN6h008//cwzz0yn0729vWMAAMyY0dHRjw71/++GOXXHHae8CLW3t+dyuQdfeJdhGIZhYpjt7h+f2rlvvENnnnlmLpdb+UKWYRiGYWKbjZ8NqeKHoXQ6vfLFLMMwDMPEPOMd6u3tXfW77QzDMAwT84x36I9//ONDL+1gGIZhmJhnvENjY2Orf/8ewzAMw8Q8pQ49kn6PYRiGYWKeUofWrN3JMAzDMDFPqUOPrvuAYRiGqWw6n978vTtXXjm/rbrzvTtXdj69ObZLdD358pXfvKChrr66c+U3L+h68uWot07UoYyY9W8FhmEYK3PDwo70pnf39g1Ud9Kb3r1hYUdsl7ho1hlrVz00uOPt6s7aVQ9dNOuMqLeu1KFfvLwrajKZjPbw/cdPKE720b986+G/eP3B49bfV6ctYxiGOXZmXvPde/sGNr13sLqzt29gXvPdsV2ioa4+n33z0FMPV3fy2Tcb6uqj3rpShx5f/2HUZDIZ7eH7j5/wp/70n/rTfzr03BefdH2xf9nzS/6HtiyueehMdUlq0kZ1T/6Nf3ks/hfFMEyNzdUL7vn44MDGHQerOx8fHLh6wT2xXaKhrn7gnS0Hn1zZ98uVfb9c2ffk+BT3HCxuTGz3TZpV40c9uap04MTGwDtbGurqo966Uoee2LA7ajKZjPZw25rj/3TouS8+WfPF/uVf7Lnti53XP/7jr2rLirPwfFXyNz9aHn2VwDx8pnfg+Q8bl12ycNJGJbPw/ElXWf5v31B/86PlGx4+U33jyscrPCfDMMfOXDMeiQPVnY8PDlyz4B7JJVo7Hm2c2xQ1rR2PSi7RUFfvvrX5wC9WlOaxFQceG99+4PY7vBM+cPsdoXuC88kvVrhvbW6oq49660od+mVmT9QE/x3o9QeO+2L/si8+un105w2j7140+vY/rLz1v2YymeCxLeerWd97xdtW5682XKg0d1+qlGq4u/TQO0lgVjeoS1smbVQ0T9wxS5121RPeOYvb3gbDMIxprvnB0u6DAxt2HKzudB8cuOYHSyWXaJzbNBqtcW6T5BINdfVHtmzMPdKRW92RW93RO7FRnMa5Td7/YXbj3KZ/b7lN29O7uqPXtz73SEfxVEe2bGyoq49660od+tXG7qjJZDJb/s+XMyd/5aVZ/+25v/5qJpP5/bI//2LnDaPvXjTy1v8deePrI6+e0PH9L2cymeCxP7xAzfr++uJ25/dPUxesNlxoYlafpdRZ95Rd5i2+7IeTNiqb9fNOmbjVey5Tp/y4c/ycp817suJzMgxzrMy1t9zbfXBg/Y6D1Z09B/PX3nKv5BJlOxR1YPfBAe8SDXX1hze/0vPg0v0rl+5fuXT/g/dObCzdv3LpilRL49ymLyZo2ytSLT0rl+5fubT4df/KpftX3lvcPrz5lYa6+qi3rtShpzZ1R00mk1k36yv5F37j3N+x5q/+LJPJPPPTPxt96x9GX//66KYTRjJfG8l8bdlNX8pkMsFjb7tQzbp5/VObup/atH7eKeqspeMbEzu7n1p6mTrlx53+o4J7vPnVj2dN/K7urKXFnavPUpfdpm+cNm/p+MqzlnY/tfSy4iGli25afdbEeQJ34t3nxKluHj9cXbj6qU3dnTefpvwuXG146xiGOUbm2lvu7T6YX7+jr7pT7JB3iT0HBzbs6Asdr0Pab+R8n4fCD/RfotihvSuW7L1/yd4VS/atWLJ3RWlj3/1L7r811Ti3qTBZ49ym+29NjS+7v3TU3omjih2KeutKHXpm896oyWQyz/71V50V7d1N17Sf+OeZTGbNbf/9wVu+ct/8Ly//ty8tu+lLy276L8UOBY+9/ULfj+xTFv28uP/ey7zt2y9UZ987+Sjfs5Mnc/WFvjOoy27fvPeZzWvODtmYuNa9lyml1IVrntm895lfLZpVWnDa1b+aOOcp3g1krj5FnX3zolmlq685e9Lh3lHm+2QY5pib625dtuX93IPPvx06t/xkheEfb275yYqoA7e8n7vu1mWSSzTObTp06NChQ4ca5zaZdxou0VBX/+Gq5b9vOMUwd11wnnfa4pnvuuA88yEfrlreUFcf9daVOvTsa/uiJpPJrP6rr+357jXb/m72XX/5vwz/+6HgsT+6UJ00f+P4w2WXK3X5j17b9+xra85Wp13zVHGjuMc3yy5Xpyz6ecTN/Hy+93HEO1Vwo3jyiO1ll6vJJt+hOnuZdzn/4RuvOcXb3vfsU4tOCt45wzDH6lx367KtO3Or/uMPoeP/d5SgxrlNUQdu3Zm77tZlky7xn38Inca5TT09PT09PVrkvJ1RB27d+Yl3iWKH1p07e+2c2evmjH9dN2f2ujmnrzv39HVzZv/04gu9c3oa5zb99OIL1517+rpzZ689d/bac2evm3P6ujmnrzt3dnGKHYp660odeu6N/VGTyWSWn/g/f3ZC3R3HH3fLcX+RyWRu/82+4ix8urv5sd2ZTKa4LHjsHd9RJzVvnHjYdY6afe3T+597Y/+K5tknNW9c0TxbfacrcFRp2aR5evFJauJsTy8+SV1+x/ji4IZ3eNj28svVqYtXhL9Y7yTBwzdee2roaRmGYfZfn1r25gefPPzittBpnNu0J1rj3KaoA9/84JPrU8v8l1j94rbQKXuJqAPf/OCAd4mGuvrdqzs3NH4rMN/c0Pitn/1zo/8q2vbP/rkx7MBvbWj81u7VnQ119VFvXalDv93SEzXBzz0Ln+7+xatjy383dusTY5fe/VYmkykuCx676GJ10oJXxx+2X6HUFYuK28/eedKpV5xz6uzrng254gMLZivle6r9ipMWvPrb9ivUqXc+UFpQPNWj54RseMeGbj96jlLntHt3OHFLk04SPPzV68bv9tXrTi0dzjAM89stPTcsXP7OHufx9btCp3Fu0wfRGuc2RR34zh7nhoXLY7tEQ11992MPbr5qzqarztt01Xmb583ZfFVp/JdonNu05PLLtD2bvUPmzdk8b87mq84rHtj92IMNdfVRb12pQ89vzUVNJpPxb2Qymavvy7b/buzWJ8auvG/0H7//irc/eOzii/2/ALtisfbUqXc+GHXdjitKx1382PNbc89v3Xz9qeM7Tr74ipPHz/bYt0M2Zl//6+J5IrZ/fefJE+f+dof/ut5Jgodvvv7U2df/WntF3r0xDHNMT9PC9u37Pnv2tb2hc8c9jxj+feiOex6JOnD7vs+aFrbHdomGuvp9z3RtvemSrTddOjGXTDy85J5587wT3jNv3tabLg3sucR3yCVbbxw/z75nuhrq6qPeulKH/uOtT6Imk8n4NzKZzLcXbvzHm1/5+++uPePal8649iVvv+Ekwbnzn9TJP3htSocwDMMcnfPdH3bs7P286qfd2fv5d3/YEdslGurqcy88807q+irNDcWN3AvPNNTVR91AqUP/+faBqJH8P5wWGU6iz29+crL6lzvl6xmGYY7i+dfbOncdyL/07qHqzq4D+X+9rTO2SzTU1fe98uL2xfO3L5q/Y/H8HYvmb/dm8c3bF8/fvnj+9kU37xjfvnn74pu3L5rYXjQ+3lHeRt8rLzbU1Ue9daUOvfCHA7HNnf+klFL/7774rsgwDDOjs+Cuh9a/uevDg4PVnfVv7lpw10OxXeI7X//bl1c91P96prrz8qqHvvP1v41660odevGdgwzDMExl89jaHQvuWnXj7fdVdxbcteqxtTtiu8RDa168aNYZVf/7QxfNOuOhNS9GvXWlDr20rY9hGIZhYp5Sh37/7iGGYRiGiXlKHUpnHYZhGIaJedTw8LBSKrRDLgAAVUWHAAA20SEAgE10CABgEx0CANhEhwAANtEhAIBNdAgAYBMdAgDYRIcAADbRIQCATXQIAGATHQIA2ESHAAA20SEAgE10CABgEx0CANhEhwAANtEhAIBNdAgAYBMdAgDYRIcAADbRIQCATaYOrc06/qFDAICqS09uzVo6BACIk7FD2x3/0CEAQNWls46WGzoEAIgPHQIA2ESHAAA2mTq0brvjHzoEAKi6dNbRcuPv0Kf+oUMAgKqb6FApN3SoapRSodvmndXSBciMjY3N3PchUFY662i58XVox6f+oUNFyshbE/o1eKqoc07/Pru6um4Eyunt7aVDsCuddbTclDr08o5PvaFDnrKfcuQrtW4JTytU7NAYYESHYF066/hz83JUh16mQxO8zzeGD0PB/fKH1f08ZPunHI52dAjW0aEpi/o9W/AzTfDjTtTnnqgF2nmmhA5Bgg7BOlOHXtnxqX/oUFHZz0PaGm1P8FShZ/OvoUOYOXQI1qWzjpYbX4fe+9Q/dKio7Oeh0PZEdUjbX5XfyBXRIUjQIViXzjpabuhQGZLPQ27ER5/gByDtIf8+hJjRIVhn6tD69z71Dx0qMvfGDUTFv8z8e7nQc/J7OcwoOgTr0llHy42/Q/3+oUNFhl+7Ra0JbpvPQIcQGzoE69JZR8tNqUMb3u/f8H7/+omhQ0VR/6IT9W8/oUcFd/J7OVhBh2BdOusUW7NhYvQOeUOH3Ih/5gk+a/h1nOGfiIJrpoMOQYIOwbpihzaEdijzfr9/6FBtoUOQoEOwLp11tNz4OrSz3z90qLbQIUjQIViXzjpabiZ1aKNv6FBtoUOQoEOwLp11Nk7OTalDG+lQLaNDkKBDsM7UoVc/OOwfOlRb6BAk6BCsS2cdLTd0KCHoECToEKwzdWjTB4f9Q4dqCx2CBB2Cdemso+XG16Fdh/1Dh2oLHYIEHYJ16ayj5abUoc27DvuHDtUWOgQJOgTr0llHy02pQ699eNg/dKi20CFI0CFYl846Wm78HfrMP3SottAhSNAhWJfOOlpuSh16/cPP/EOHagsdggQdgnXprKPlptShN3Z/5h86VFvoECToEKxLZx0tN3QoIegQJOgQrDN1aMtHR/xDh2oLHYIEHYJ16ayj5abUoa0fHfEPHaotdAgSdAjWpbOOlptSh97cc8Q/dKi20CFI0CFYl846Wm5KHXqr+4h/6FBtoUOQoEOwLp11tNz4O+T6hw7VFjoECToE69JZR8tNqUNvf+z6hw7VFjoECToE69JZR8tNqUN/+Nj1Dx2qLXQIEvF3qKOjo6WlpRkVaWlp6ejoOMrfYclN+qWzjpabUofe2ev6hw7VFjoEiZg7tKStrbOzs6+vbxQV6evr6+zsXNLWdjS/w2VvUpPOOlpuSh3atvdz/9Ch2kKHIBFzh1KplOM4hUJhABUpFAqO46RSqaP5HS57k5p01tFyU+rQu/s+9w8dqi10CBIxd6i5uXl0dNTij8gEGB0dbW5uPsrfYfNNatJZR8sNHUoIOgSJ+Ds0MjLyuT0qwP+UtjL08Bm/xXJGRkbMHZrSOyx8RaHvWMU3qTF1KLv/c//QodpChyBhpUOxXS5IKRX10NvWQuXfE+etRpF0SH62qBcVfBOqeJOadNbRclPq0Pb9n/uHDtUWOgQJKx06Yo9SKvjQ/1VylF2SDsnPJnlpFbz8qXZIy02pQzt6BvxDh2oLHYJE/B0qFAqH7Qn+Xq640/vq3wg+dTQoFArmDpV9h4Nvgv/dMC/wL6v4JjXprKPlptSh93oG/EOHagsdgoSVDvXbo5TSNrxtwx7/j+D47jWCpEPys0W9ouC7YV4/pZvUpLOOlhtfh3oH/EOHagsdgoSVDn1qj1JK2/C2va8abYF1kg7Jzxb1ogwfhqZ/k5p01tFyU+rQ+7kB/9Ch2kKHIBF/h4aHh7vtCf5ULe70vvpXatvaAluGh4fNHTK/w2V/5+Yt8x8Sul3xTWrSWadYmZ25fHGj1KGdubx/6FBtoUOQsNKhj+wp/qgtboR+9dZ4ggvsknRIeCrDKzKEavo3qUlnHS03pQ59kMt/kMt/8Em+uEGHagsdgoSVDu22RClV9qu2OHigdZIOSc4TfIGSlVW5SU0664znZmJ8Hfok7x86VFvoECTi79DQ0NAuq5RS2lf//tAFwcUWDQ0NmTskeYeDr0XbY/g8NP2b1KSzjpabUod2fZL3Dx2qLXQIElY6tNMqpVTxa1Fwv/9h6IZdkg6Zz2BoTNT66t6kJp11tNyUOvThgfyHB/K7JoYO1RY6BIn4OzQ4OPjeUUAppT307/Eeajtjuz2DwcFBc4cqfoe9F2gIlfZGVXaTmnTW8XJT3PB3aNA/dKi20CFIWOnQdkyDpEO277HMTWrSWUfLTalDuw8O7j5QGjpUW+gQJOLvUD6fz2Ia8vm8uUNHwztsvklNOuvsPjDoL87kDvmGDtUWOgSJ+P/+UE9PT39//zZUpL+/v6enx/z3h6y/w2VvUpPOOlpuSh366OCgf+hQbaFDkIi5Q21tbe3t7blcLo+K5HK59vb2tug/dXo0vMNlb1KTzjpabuhQQnR1dfUCAnF2yHXd1tbWVCrVjIqkUqnW1taj/B2W3KSfqUN7+gb9Q4dqi93/lI3aYvu7Fce0dNbRckOHAADxoUMAAJvMHRra0ze0p2+wuEGHAABVl846E7kZH/57CgCA+Jj+ewr83QcAwEwz/d2H13d/5s0buz+jQwCAqktnHS03pQ6tzTprt5eGDgEAqi6ddbTc0CEAQHzoEADAJjoEALCJDgEAbKJDAACb6BAAwCY6BACwiQ4BAGyiQwAAm+gQAMAmOgQAsIkOAQBsokMAAJvoEADAJjoEALCJDgEAbKJDAACb6BAAwCY6BACwiQ4BAGyiQwAAm+hQiQrw9mvLggeGnk3bDl1mPsl0dAEyY2Nj1f3eA6aEDpVo4fE/NKeosg4FsxdM4HR0dXXdCJTT29tLh2AXHSrxAhD6ecjQBkOH/Kcyf8yqumKHxgAjOgTr6FCJ4fOQ8EDvoaRkWpyq+2HIpUOQoUOwjg6VhPYg6qF2YOjZtO2pHuW/qwpeDh2CBB2CdXQoRNlgyIsi+b2cf0HoeegQZg4dgnV0qCTq92PmDkUlRPh7uaiH00eHIEGHYB0dCjGlz0PBxgR/dxfVIYPpvwo6BAk6BOvoUAjtl2luRJkMC/z7y/5eLvgwWLUKXgUdggQdgnV0qCT0s4jho4wbHY/Qp4S/l4u61lTRIUjQIVhHhyaJ+qAjaUa1OlQtdAgSdAjW0aESc37M/0qk7Sn770PV+tBjQIcgQYdgHR1KLDoECToE6+hQYtEhSNAhWEeHEosOQYIOwTo6lFh0CBJ0CNbRocSiQ5CgQ7CODiUWHYIEHYJ1dCix6BAk6BCso0OJRYcgQYdgHR1KLDoECToE6+hQYtEhSNAhWEeHEosOQYIOwTo6lFh0CBJ0CNbRocSiQ5CgQ7CODiUWHYIEHYJ1dCix6BAk6BCso0OJRYcgQYdgHR1KLDoECToE6+hQYtEhSNAhWEeHEosOQYIOwTo6lFh0CBJ0CNbRocSiQ5CIv0MdHR0tLS3NSK6WlpaOjg75twQdSiw6BImYO7Skra2zs7Ovr28UydXX19fZ2bmkrU34XUGHEosOQSLmDqVSKcdxCoXCAJKrUCg4jpNKpYTfFXQosegQJGLuUHNz8+joqO2fk5hxo6Ojzc3Nwu8KOpRYdAgS8XdoZGTk8xqhArz92rLggaFn07ZDl5lPUitGRkboEOgQRKx0KLbLTZNSyr/hf+htaytDHwZ3aif0nzZKFV5PjOgQXJcOQcZKh47UiGIAvI3idvGh9zXqwKid/lOFnjYZ6BBclw5BJv4OFQqFwzVCKeXf0B5KDvQeekJPqO0MqsKLiVehUKBDoEMQsdKh/hoR7IG20/9QOzD0bNr2VI+qIXQIrkuHIGOlQ5/WGqWU4aFkgbfT65a27T/Kv6A6LyB2dAiuS4cgE3+HhoeHu2tE8POQtz+4UtsOXaOdQVtjflhbhoeH6RDoEESsdOijWqOUMjzU9hS3tT1FhjX+ZaGq92riQIfgunQIMlY6tLvWeDEobntf/QtCv4au8Z/K2446Z+hTRz86BNelQ5CJv0NDQ0O7aoTXCW2n91Vbqe0PPdB8ktCH2v6aMDQ0RIdAhyBipUM7a4dSyvBVW6btj1pT9iShD2sLHYLr0iHIxN+hwcHB92qEUir0q//Z4PrQPcUPTKFnDj1WW19zBgcH6RDoEESsdGg7ko4OwXXpEGTi71A+n88i6fL5PB0CHYJI/H9/qKenp7+/fxuSq7+/v6enh78/BDoEkZg71NbW1t7ensvl8kiuXC7X3t7ext9jRVdXVy8gEGeHXNdtbW1NpVLNSK5UKtXa2ir/lqBDiWX3P2Wjttj+bsUxjQ4BAGyiQwAAm+gQAMAmOgQAsIkOAQBsokMAAJvoEADAJjoEALCJDgEAbKJDAACb6BAAwCY6BACwiQ4BAGyiQwAAm+gQAMAmOgQAsIkOAQBsokMAAJvoEADAJjoEALApCR1SSk1zQdk1/meL2/L1tnQBMmNjY7a/W3FMq/kOCX/iTzVF2vqyHVJGkjusuq6urhuBcnp7e+kQ7KrVDpX9oW8Og3+Z/5yh266vPd6xhvMcJYodGgOM6BCsq+EOmfcLf28WukwLUmhyzKGy/mHIpUOQoUOwLrEdms6pzHsMHZKcJ7Yy0SFI0CFYV8MdKvsLNzPtbKHb2k7J7+X8C6Jue/ovX4IOQYIOwboa7lBV9msLDIcrwe/l5JeLAR2CBB2CdQnvUPDzylTPGfz8FNUh4Wev2NAhSNAhWFfDHZrSL9zKhqHs5yFX9nu54ENtm9/L4ahCh2BdDXdIsl/4eSgqG4YFwt/LhX5sMtxJFdEhSNAhWJfkDvmDYfjpH3zKvGdKHbKIDkGCDsG6Gu6Q+fdywd+GBZcZPp1opzJ3yOKHHgM6BAk6BOtqtUMoiw5Bgg7BOjqUWHQIEnQI1tGhxKJDkKBDsI4OJRYdggQdgnV0KLHoECToEKyjQ4lFhyBBh2AdHUosOgQJOgTr6FBi0SFI0CFYR4cSiw5Bgg7BOjqUWHQIEnQI1tGhxKJDkKBDsI4OJRYdggQdgnV0KLHoECToEKyjQ4lFhyBBh2AdHUosOgQJOgTr6FBi0SFI0CFYR4cSiw5Bgg7BOjqUWHQIEnQI1tGhxKJDkKBDsI4OJRYdggQdgnV0KLHoECTi71BHR0dLS0szkqulpaWjo0P+LUGHEosOQSLmDi1pa+vs7Ozr6xtFcvX19XV2di5paxN+V9ChxKJDkIi5Q6lUynGcQqEwgOQqFAqO46RSKeF3BR1KLDoEiZg71NzcPDo6avvnJGbc6Ohoc3Oz8LuCDiUWHYJE/B0aGRn5fCYppaa5oOwa/7PFbfl6oWodUsF5qmJkZIQOgQ5BxEqHZu78SqlqLfOv0dYHnwouMJDcT9Qyw9mEZzbvrxY6BNelQ5Cx0qEj1Wb4oV92gbbMf87Qbe+h/1jDeSQ3L9wZ9ZR3D9M8TxXRIbguHYJM/B0qFAqHq00pZd4ftUCyzL/Tny7/s9qB3s6gqd65+WYM92A+j+TZ6SgUCnQIdAgiVjrUX21KqSntn9KpzHuK29qa0Ouad5b9xBa1JvQe/Ked6i1VBR2C69IhyFjp0KfVZvjxXXaBf5m3OHRb2+k/Nng5/3WjzlPB/uD5ta+hC6LOab7KdNAhuC4dgkz8HRoeHu6uNqVUVfZrCwyHe0+FrjQ/LPuU+epR59duybxd9samaXh4mA6BDkHESoc+qjallGS/9zBqfdlzep97tGXBCxlIrhL6VNTZtPXB2xM+rCI6BNelQ5Cx0qHd1Wb4oa8tC10fekL/+qhnvcO1U0Vd1/xU2cXmk4Te85QeVhEdguvSIcjE36GhoaFd1aaUkuz3HkatDz4bujK4IOpCkusajhW+rqnuLPvU9A0NDdEh0CGIWOnQzmpTSpXdX9z2fxWeyrwn9ITmh4aLSq5e3Okpu9J8xRlCh+C6dAgy8XdocHDwvWoz/F7OW2Be7O03nD+47Z05uCf02LIvwfyU9qLMhxsWx2BwcJAOgQ5BxEqHtiPp6BBclw5BJv4O5fP5LJIun8/TIdAhiMT/94d6enr6+/u3Ibn6+/t7enr4+0OgQxCJuUNtbW3t7e25XC6P5Mrlcu3t7W38PVZ0dXX1AgJxdsh13dbW1lQq1YzkSqVSra2t8m8JOpRYdv9TNmqL7e9WHNPoEADAJjoEALCJDgEAbKJDAACb6BAAwCY6BACwiQ4BAGyiQwAAm+gQAMAmOgQAsIkOAQBsokMAAJvoEADAJjoEALCJDgEAbKJDAACb6BAAwCY6BACwiQ4BAGyiQwAAm+gQAMAmOgQAsIkOJVYXIDM2Nmb7uxXHNDqUWF1dXTcC5fT29tIh2EWHEqvYoTHAiA7Buml1SClV9gL+NaHrgwvMp5VcNB7CO7F1w3QIEnQI1lXYITWZtsd/gel3SBkZXpt2ZvmB5kubX475NuRPTR8dggQdgnVV+72c9yPV/JM6ak9o0qIOkTBc2hDOsinVzuCGJTlqpfA+q4UOQYIOwbrKPw9p2xV0KPjjO/SnduiP+7Kfacp2SHjnhp1TakzUMjoEu+gQrKv881DoD/EKfvIakmY4z1Qj5Iqzpz0VGj9Jh6KyV8FrqaxVdAgSdAjWVdKh0J/OUVkyLwuu1La1c5b9CKIdErrT3KHQn/uhhwRfY+gZtG3DyaNeCx3CzKFDsG5m/30ouCf02bJhMDw030zwQmUvJ7lo1IGSU1WwoDJ0CBJ0CNZV878v5z2lXcP84SD0s5F2uEHoq5rO5yHtqdAr0iEkBh2CdTP731Mo+9AN/MR3A30ynMHwE9wQiaiTG85s+DxU9n7MmZFUqrJQ0SFI0AxwAlkAAAUjSURBVCFYV80Ohf7EFHZIO5XkDFP6+R71KSpqmflswTuZ6ocz4bMuHcIMo0Owrvq/l/OT/ECvuENllQ2D4c6Dh5Rt2FRvQ36GytAhSNAhWFf938tFrYn6nGE+VejnlYpfrfAqZW97Sncyo7ExoEOQoEOwjv+f08SiQ5CgQ7CODiUWHYIEHYJ1dCix6BAk6BCso0OJRYcgQYdgHR1KLDoECToE6+hQYtEhSNAhWEeHEosOQYIOwTo6lFh0CBJ0CNbRocSiQ5CgQ7CODiUWHYIEHYJ1dCix6BAk6BCso0OJRYcgQYdgHR1KLDoECToE6+hQYtEhSNAhWEeHEosOQYIOwTo6lFh0CBJ0CNbRocSiQ5CgQ7CODiUWHYJE/B3q6OhoaWlpRnK1tLR0dHTIvyXoUGLRIUjE3KElbW2dnZ19fX2jSK6+vr7Ozs4lbW3C7wo6lFh0CBIxdyiVSjmOUygUBpBchULBcZxUKiX8rqBDiUWHIBFzh5qbm0dHR23/nMSMGx0dbW5uFn5X0KHEokOQiL9DIyMjn8sopaa5YCZOEro+uMB8WslF5Vev7LSGQyo4j2ZkZIQOgQ5BxEqHJCuVUtVa5l+jbftpeyRnMCwInsFgSvcsfKXmS8tfjmR/EB2C69IhyFjp0JFohh/WZRdoy/znDN0OvbrkkKg9/nsw3E9Z2uIK7l/ylHef0zxPKDoE16VDkIm/Q4VC4XA0pZR5f9QCyTJtp/9hcTv08OCptGc9oafSdgaZb7LszZiPNZwh9D6ncxW/QqFAh0CHIGKlQ/3RlFJT2j+lU0Xt8fZrD+X3EzzEsGCqOw33E/Wh0BO1xvxigxtlb1tDh+C6dAgyVjr0aTTDj9SyC/zLvMWh24bz+Fd6D83Lgiu1be2cwcOj7tl/5tBnzcdGPes/Z+hbZHjfyl6liA7BdekQZOLv0PDwcHc0pVRV9msLyi7TzhZc798T+qx2rLbG/LDsyuDXqAMrO3N39As0vxVRhoeH6RDoEESsdOijaEopyX7vYdR64Tn9zKf179G2vcP9zwZv2KDsKw1+jXqZoXceekXDS5bckhkdguvSIchY6dDuaIYf1tqy0PWhJ/SvDz1JcFnU5UIf+g/3bkO7JcMZJNcKfi37WsxrzOec6ssPokNwXToEmfg7NDQ0tCuaUkqy33sYtT74bHBl8FkvHsKrm09V8f2HPjvV12I4bWU7yz7lNzQ0RIdAhyBipUM7oymlyu4vbvu/Ck+l7dE+S0Wdrex5DLdnuHTUbUedJGpbeIc7J7/esisNdyVBh+C6dAgy8XdocHDwvWgqmrfAvNjbbzh/6Km0PYbLGc4ZeirtEMPtGS4d+qzklUbddujhhsVTMjg4SIdAhyBipUPbkXR0CK5LhyATf4fy+XwWSZfP5+kQ6BBE4v/7Qz09Pf39/duQXP39/T09Pfz9IdAhiMTcoba2tvb29lwul0dy5XK59vb2Nv4eK7q6unoBgTg75Lpua2trKpVqRnKlUqnW1lb5twQdSiy7/ykbtcX2dyuOaXQIAGATHQIA2ESHAAA20SEAgE10CABgEx0CANhEhwAANtEhAIBNdAgAYBMdAgDYRIcAADbRIQCATXQIAGATHQIA2ESHAAA20SEAgE10CABgEx0CANhEhwAANpk6lM46DMMwDBPz0CGGYRjG5tAhhmEYxubQIYZhGMbm0CGGYRjG5tAhhmEYxuaMd+jkbTmGYSoYNZn1+2GYmpvxDgGozNhktm8HqD3/H5axXqKKUf8UAAAAAElFTkSuQmCC" alt="" />

自己定义的比较器类:

 public class IntCompare:IComparer<int>
{
/// <summary>
/// 自定义比较规则(从大到小)
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <returns></returns>
public int Compare(int x, int y)
{
//假设原来x位于y的前面,由于x<y 索引值变为1,即索引发生了改变所以推理此比较器是从大到小
if (x < y)
{
return ;
}
else
{
return -;
}
}
}

代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace WindowsFormsApplication30
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 创建全局数据集合,用来进行一系列比较
/// </summary>
List<int> dataList = new List<int>(); /// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
this.GetData();
} /// <summary>
/// 构造测试数据
/// </summary>
/// <returns></returns>
private void GetData()
{
dataList.Clear();
Random rm = new Random();
for (int i = ; i < ; i++)
{
this.dataList.Add(rm.Next(, ));
}
this.richTextBox1.Text = string.Join(",", this.dataList.ToArray());
} /// <summary>
/// 刷新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnRefresh_Click(object sender, EventArgs e)
{
this.richTextBox2.Clear();
this.richTextBox4.Clear();
this.richTextBox3.Clear();
this.GetData();
} /// <summary>
/// 默认排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDefault_Click(object sender, EventArgs e)
{
this.dataList.Sort();
this.richTextBox2.Text = string.Join(",", this.dataList.ToArray());
} /// <summary>
/// 自定义排序(从大到小)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnCustom_Click(object sender, EventArgs e)
{
IntCompare compare = new IntCompare();
this.dataList.Sort(compare);
this.richTextBox3.Text = string.Join(",", this.dataList.ToArray());
} /// <summary>
/// 去重
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDistinct_Click(object sender, EventArgs e)
{
List<int>distinctList= this.dataList.Distinct().ToList();
this.dataList.Clear();
this.dataList.AddRange(distinctList);
this.richTextBox1.Text = string.Join(",", this.dataList.ToArray()); } /// <summary>
/// 自定义排序部分排序(从大到小)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
IntCompare compare = new IntCompare();
//只对索引3开始的2个包括自己进行排序
this.dataList.Sort(,,compare);
this.richTextBox4.Text = string.Join(",", this.dataList.ToArray());
}
}
}

演示:

源代码下载

C#List的排序和简单去重总结的更多相关文章

  1. HTML5 拖放及排序的简单实现

    HTML5 拖放及排序的简单实现 之前写过个类似的例子,看这里. 但想再深入一步,希望能通过拖放,来交换二个元素的位置.最好有应用到手机平台上. 作了个简单的例子,在手机上测试的时候不成功..查了好多 ...

  2. List<T>集合的Sort自定义排序用法简单解析

    List<T>集合的Sort自定义排序用法简单解析: 如下:一系列无序数字,如果想要他们倒序排列,则使用如下代码: 那么如何理解这段代码呢? (x,y)表示相邻的两个对象,如果满足条件:x ...

  3. 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)

    程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现) 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现) 程序员必知的8大排序(三)-------冒 ...

  4. 《Algorithms算法》笔记:元素排序(1)——简单排序

    <Algorithms算法>元素排序(1)——简单排序 Algorithms算法元素排序1简单排序 排序问题 1 回调函数 2Java中回调函数的路线图 3 全序 4 Comparable ...

  5. [Swift]八大排序算法(三):选择排序 和 简单选择排序

    排序分为内部排序和外部排序. 内部排序:是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列. 外部排序:指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存 ...

  6. 八大排序算法~简单选择排序【记录下标k变量的作用】

    八大排序算法~简单选择排序[记录下标k变量的作用] 1,思想:打擂台法,数组中的前n-1个元素依次上擂台"装嫩",后边的元素一个挨着一个不服,一个一个上去换掉它 2,优化:通过记录 ...

  7. 【PHP数据结构】其它排序:简单选择、桶排序

    这是我们算法正式文章系列的最后一篇文章了,关于排序的知识我们学习了很多,包括常见的冒泡和快排,也学习过了不太常见的简单插入和希尔排序.既然今天这是最后一篇文章,也是排序相关的最后一篇,那我们就来轻松一 ...

  8. 【PHP数据结构】插入类排序:简单插入、希尔排序

    总算进入我们的排序相关算法的学习了.相信不管是系统学习过的还是没有系统学习过算法的朋友都会听说过许多非常出名的排序算法,当然,我们今天入门的内容并不是直接先从最常见的那个算法说起,而是按照一定的规则一 ...

  9. c++实现排序(简单插入,希尔,选择,快速,冒泡,堆排)

    简单插入排序 适用于记录较少且基本有序的记录.算法思想:给定一个存在分界线的序列,分界线左边有序,右边无序,依次将右边的没排序的数与左边序列进行比较,插入相应位置,再对分界线做出相应调整,下面用图来说 ...

随机推荐

  1. Node.js模块

    每一个Node.js都是一个Node.js模块,包括JavaScript文件(.js).JSON文本文件(.json)和二进制模块文件(.node). mymodul.js function Hell ...

  2. Java套接字

    前言: 本文补充一下Java关于套接字方面的内容,因为其应用相对比较简单,所以下面介绍两个程序实例. ------------------------------------------------- ...

  3. mysql字段冲突报错

    check the manual that corresponds to your MySQL server version for the right syntax to use near 出现这个 ...

  4. 【BZOJ-1441】Min 裴蜀定理 + 最大公约数

    1441: Min Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 471  Solved: 314[Submit][Status][Discuss] De ...

  5. bzoj1103: [POI2007]大都市meg

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1103 题目大意:在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Ma ...

  6. codevs1091 传染病控制

    题目描述 Description [问题背景] 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完 ...

  7. 未在本地计算机上注册"microsoft.ACE.oledb.12.0"提供程序解决办法

    错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序. 解决办法: 去http://download.microsoft.com/download/7/0/3/7 ...

  8. [iOS Hybrid实践:UIWebView中Html中用JS调用OC方法,OC执行JS代码]

    原理: 1.JS调用OC 每次webview执行跳转时都会被iOS给拦截,执行下面函数获得系统允许. 因此可以根据跳转信息转给系统,执行相应功能,比如打开相册等. // 网页中的每一个请求都会被触发 ...

  9. resultset 对象获取行字段数据时报:java.sql.SQLException: Column 'id' not found.

    resultset 对象获取行字段数据时报:java.sql.SQLException: Column 'id' not found. 代码: String sql="SELECT d.co ...

  10. 旅图beta版 asp.net web api 单元测试

    旅图 beta版 asp.net web api 单元测试 测试接口:http://120.27.7.115:1010/Help 测试目的 对每个接口单元进行测试,保证每个接口的可靠性. 单元描述 注 ...