using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
private static List<string> Message = new List<string>() { "张1","李1","王1"};
static void Main(string[] args)
{
DataTable dtNew = new DataTable();
dtNew.Columns.Add("Index", Type.GetType("System.String"));
dtNew.Columns.Add("Name", Type.GetType("System.String"));
dtNew.Columns.Add("BirthTime", Type.GetType("System.String"));
dtNew.Columns.Add("Class", Type.GetType("System.String"));
for (int i = 0; i < 3; i++)
{
DataRow dr = dtNew.NewRow();
dr["Index"] = i;
dr["Name"] = "张" + i;
dr["BirthTime"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
dr["Class"] = i+2;
dtNew.Rows.Add(dr);
}
Dictionary<string, List<Record>> dt = dtNew.AsEnumerable().GroupBy(x => x["Index"].ToString()).ToDictionary(x => x.Key,
y =>
{
List<Record> records = new List<Record> { };
foreach (var item in y)
{
Record record = new Record
{
Name = item["Name"].ToString(),
BirthTime = item["BirthTime"].ToString(),
Class = item["Class"].ToString()
};
records.Add(record);
}
records = records.OrderBy(n => DateTime.ParseExact(n.BirthTime, "yyyy-MM-dd HH:mm:ss", null)).ToList();
return records;
});
Dictionary<string, List<Record>> dic = dt.Where(x => x.Value.Exists(y => Message.Contains(y.Name))).ToDictionary(x => x.Key, y => y.Value);
}
public class Record
{
public string Name { get; set; }
public string BirthTime { get; set; }
public string Class { get; set; }
}
}
}
原始数据表:
最后输出的结果只有张1一条数据
key=1;
value:
2020-04-14 23:08:20
3
张1
原文:https://www.cnblogs.com/dongleifun/p/12702131.html