110,571
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
class T
{
public int id;
public string value;
public T(int id, string value)
{
this.id = id;
this.value = value;
}
}
class Program
{
// 自定义的比较方法
static int CompareById(T x, T y)
{
return x.id - y.id;
}
static void Main()
{
// 构造输入数据
List<T> list = new List<T>();
// select * from table where id in (8,3,5,1,9,4,100,33,57,...)获取的
foreach (int i in new int[]{8,3,5,1,9,4,100,33,57,})
list.Add(new T(i, ""));
list.Sort(CompareById); // <------------------ 排序!
// 输出排序后的结果:
foreach (T t in list)
Console.WriteLine(t.id);
}
}
/* 输出:
1
3
4
5
8
9
33
57
100
*/
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
list.Add(5);
list.Add(6);
....
Random r = new Random();
list = (from x in list orderby r.Next(1, list.Count<int>()) select x).ToList<int>();
生成随机的不按原顺序的list.
int[] key = {8,3,5,1,9,4,100,33,57,...};
List<T> list = ...;
List<T> listSorted = new List<T>();
foreach (int i in key)
{
listSorted.Add(list[i-1]);
}
// listSorted 就是按新的顺序排好的。
List<T> list = ...;
int[] key = {8,3,5,1,9,4,100,33,57,};
foreach (int i in key)
{
T x = list[i]; // 取出。
}