Dictionary 和 DataTable 相关.要求性能。求大神!
Dictionary 数据
1 A
2 B
3 C
.....
DataTable 数据
01 1 90
02 2 75
03 2 75
04 1 85
.........................
------------------------------------------
需要得到以下新数据:
New DataTable
01 A 90
02 B 75
03 B 75
04 A 85
dictionary 性能
[解决办法]
static void Main(string[] args)
{
Dictionary<int, string> dictionary = new Dictionary<int, string>();
dictionary.Add(1, "A");
dictionary.Add(2, "B");
dictionary.Add(3, "C");
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(string));
dt.Columns.Add("num", typeof(int));
dt.Columns.Add("data", typeof(string));
DataRow dr = null;
dr = dt.NewRow();
dr["id"] = "01";
dr["num"] = 1;
dr["data"] = "90";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = "02";
dr["num"] = 2;
dr["data"] = "75";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = "03";
dr["num"] = 2;
dr["data"] = "75";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = "04";
dr["num"] = 1;
dr["data"] = "85";
dt.Rows.Add(dr);
var result = from p in dt.AsEnumerable()
from q in dictionary.AsEnumerable()
where q.Key == p.Field<int>("num")
select new { ID = p.Field<string>("id"), q.Value, DATA = p.Field<string>("data") };
result.ToList().ForEach(x => Console.WriteLine(x.ID + "-" + x.Value + "-" + x.DATA));
}