using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OrderList
{
class Program
{
public class Test
{
public int Id { get; set; }
public string Name { get; set; }
}
private static List<Test> ListStock()
{
List<Test> foos = new List<Test>
{
new Test
{
Id = 0,
Name = "a"
},
new Test
{
Id = 0,
Name = "b"
},
new Test
{
Id = 1,
Name = "c"
},
new Test
{
Id = 2,
Name = "d"
},
new Test
{
Id = 2,
Name = "e"
},
new Test
{
Id = 2,
Name = "f"
},
new Test
{
Id = 2,
Name = "g"
}
};
return foos;
}
static void Main(string[] args)
{
List<Test> t = ListStock();
Console.WriteLine("排序前");
foreach (var v in t)
{
Console.WriteLine(string.Format("Id:{0},Name:{1}", v.Id, v.Name));
}
Console.WriteLine("-");
int[] orderArr = new int[] { 1,2,2,2,2,1,0,0};
t = t.OrderBy(e =>
{
var index = 0;
index = Array.IndexOf(orderArr, e.Id);
if (index != -1) { return index; }
else
{
return int.MaxValue;
}
}).ToList();
Console.WriteLine("排序后");
//foreach (var v in t)
//{
// Console.WriteLine(string.Format("Id:{0},Name:{1}", v.Id, v.Name));
//}
Console.WriteLine("-");
t.ForEach(p =>
{
Console.WriteLine(string.Format("Id:{0},Name:{1}", p.Id, p.Name));
});
Console.WriteLine("-");
Console.ReadLine();
}
}
}
排序前
Id:0,Name:a
Id:0,Name:b
Id:1,Name:c
Id:2,Name:d
Id:2,Name:e
Id:2,Name:f
Id:2,Name:g
-
排序后
-
Id:1,Name:c
Id:2,Name:d
Id:2,Name:e
Id:2,Name:f
Id:2,Name:g
Id:0,Name:a
Id:0,Name:b
-