for (int i = 0; i < dr.Length; i++)
{
string UserAccount = dr[i]["员工工号"].ToString();
string StartDate = dr[i]["开始日期"].ToString();
string StartTime = dr[i]["开始时间"].ToString();
string EndDate = dr[i]["结束日期"].ToString();
string EndTime = dr[i]["结束时间"].ToString();
decimal DayQty = decimal.Parse(GetLeaveDays(StartDate, StartTime, EndDate, EndTime, LeaveTypeModel.AnnualLeave));
}根据Useraccount记录下DayQty值(相同UserAccount相加),但是每次的Useraccount都不一致 有什么好的解决方法(可以用缓存吗).
{
string UserAccount = dr[i]["员工工号"].ToString();
string StartDate = dr[i]["开始日期"].ToString();
string StartTime = dr[i]["开始时间"].ToString();
string EndDate = dr[i]["结束日期"].ToString();
string EndTime = dr[i]["结束时间"].ToString();
decimal DayQty = decimal.Parse(GetLeaveDays(StartDate, StartTime, EndDate, EndTime, LeaveTypeModel.AnnualLeave));
}根据Useraccount记录下DayQty值(相同UserAccount相加),但是每次的Useraccount都不一致 有什么好的解决方法(可以用缓存吗).
没测试过,也不知道有没有理解错你的意思
Dictionary<string, decimal > Users = new Dictionary<string, decimal >();for (int i = 0; i < dr.Length; i++)
{
string UserAccount = dr[i]["员工工号"].ToString();
string StartDate = dr[i]["开始日期"].ToString();
string StartTime = dr[i]["开始时间"].ToString();
string EndDate = dr[i]["结束日期"].ToString();
string EndTime = dr[i]["结束时间"].ToString();
decimal DayQty = decimal.Parse(GetLeaveDays(StartDate, StartTime, EndDate, EndTime, LeaveTypeModel.AnnualLeave));
if (Users.ContainsKey(UserAccount))
{
Users[UserAccount] += DayQty;
}
else
{
Users.Add(UserAccount, DayQty);
}
}
Dictionary<string,string> userDate = new Dictionary<string,string>();
Dictionary<string,decimal> user = new Dictionary<string,decimal>();
decimal DayQty = 0;
for(int i = 0; i < dr.Length; i++)
{
userDate.Add(dr[i]["员工工号"].ToString(),"");
}
foreach(string userId in userDate.Keys)
{
DayQty=0;
for (int i = 0; i < dr.Length; i++)
{
string UserAccount = dr[i]["员工工号"].ToString();
string StartDate = dr[i]["开始日期"].ToString();
string StartTime = dr[i]["开始时间"].ToString();
string EndDate = dr[i]["结束日期"].ToString();
string EndTime = dr[i]["结束时间"].ToString();
if (string.IsNullOrEmpty(StartDate) || string.IsNullOrEmpty(StartTime) || string.IsNullOrEmpty(EndDate) || string.IsNullOrEmpty(EndTime))
{
//StartDate = EndDate = "0";
//StartTime =EndTime = "";
}
else
{
if(userId == dr[i]["员工工号"].ToString())
{
DayQty += decimal.Parse(GetLeaveDays(StartDate, StartTime, EndDate, EndTime, LeaveTypeModel.AnnualLeave)); //decimal.Parse(dr[i]["天数"].ToString());
}
}
}
if(!user.ContainsKey(userId))
{
user.Add(userId,DayQty);
}
}
foreach(KeyValuePair<string,decimal> u in user)
{
if( GetAnnualSet(u.Key,u.Value)){}
}
}已解决 谢谢