110,534
社区成员
发帖
与我相关
我的任务
分享
部分代码:
Dictionary<int, DictDetail> repair_status = ClientPackage.GetDictionary("RepairCauseReason");
//Dictionary数据最少,让其做最外层循环,比较优
foreach (KeyValuePair<int, DictDetail> keyValue in repair_status)
{
//找出一组key的相关值,内层循环最少化
DataRow[] DrSelect = dt.Select("CAUSE_REASON = " + keyValue.Key);
if (DrSelect != null && DrSelect.Length > 0)
{
for (int i = 0; i < DrSelect.Length; i++)
{
DrSelect[i]["NEW_CAUSE_REASON"] = DrSelect[i]["CAUSE_REASON"];
DrSelect[i]["NEW_CAUSE_REASON"] = keyValue.Value.DetailName;
//修正后 DataRow保存进NewDataTable
NewDataTable.ImportRow(DrSelect[i]);
}
}
}
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));
}