110,536
社区成员
发帖
与我相关
我的任务
分享
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Time");
dt.Columns.Add("Money");
dt.Rows.Add("小红", "2017/03/01", 1);
dt.Rows.Add("小红", "2017/03/02", 2);
dt.Rows.Add("小明", "2017/03/02", 3);
dt.Rows.Add("小明", "2017/03/01", 4);
dt.Rows.Add("小李", "2017/03/02", 5);
dt.Rows.Add("小李", "2017/03/03", 6);
dt.Rows.Add("小李", "2017/03/01", 7);
List<string> names = new List<string>();
names.Add("小明");
names.Add("小红");
names.Add("小李");
foreach (DataRow item in dt.Rows)
{
Console.WriteLine("\t" + String.Join("\t", item.ItemArray));
}
Console.WriteLine("按照“{0}”的顺序排列:", string.Join("->", names));
var r = dt.AsEnumerable().GroupBy(dr => dr.Field<string>("Name")).Select((g, i) => new { Index = names.IndexOf(g.Key), Values = g.Select(dr => dr) }).OrderBy(a => a.Index).SelectMany(a => a.Values);
foreach (var item in r)
{
Console.WriteLine("\t" + String.Join("\t", item.ItemArray));
}
结果 小红 2017/03/01 1
小红 2017/03/02 2
小明 2017/03/02 3
小明 2017/03/01 4
小李 2017/03/02 5
小李 2017/03/03 6
小李 2017/03/01 7
按照“小明->小红->小李”的顺序排列:
小明 2017/03/02 3
小明 2017/03/01 4
小红 2017/03/01 1
小红 2017/03/02 2
小李 2017/03/02 5
小李 2017/03/03 6
小李 2017/03/01 7