나는 두 가지 사전을 병합해야하므로 두 가지 값을 모두 추가 할 수 있습니다.C# 2 개의 사전을 병합하고 그들 사이에 값을 추가
첫 번째 사전은 각 키의 값을 보유하는 payePlusNssf입니다 (키는 직원 ID를 나타냄). 지금까지 나는 직원 1,2,3,4가 5
Dictionary<int, decimal> payePlusNssf = new Dictionary<int, decimal>();
paye.ToList().ForEach(x =>
{
var deductNSSF = x.Value + nssfAmount;
payePlusNssf.Add(x.Key, deductNSSF);
});
제 2 회 사전은 첫 번째 사전 인당 각 값에 추가 할 요금을 보유하고 nhifRatesDictionary입니다.
Dict 1 Dict 2 Result Dict 3
key value key rate key value
1 500 1 80 1 580
2 1000 2 100 2 1100
3 2000 3 220 3 2220
4 800 4 300 4 1100
5 1000 5 100 5 1100
가 어떻게이를 않습니다 요약
Dictionary<int, IEnumerable<NHIFRates>> nhifRatesDictionary =
new Dictionary<int, IEnumerable<NHIFRates>>();
basicPayDictionary.ToList().ForEach(x =>
{
List<NHIFRates> nhifValueList = new List<NHIFRates>();
// Using Employee basic pay
decimal basicPay = x.Value;
bool foundflag = false;
foreach (var item in nhifBracketList)
{
if (basicPay >= item.Min && basicPay <= item.Max)
{
nhifValueList.Add(new NHIFRates { Rate = item.Rate });
foundflag = true;
break;
}
}
if (!foundflag)
{
nhifValueList.Add(new NHIFRates { Rate = 0m });
}
nhifRatesDictionary.Add(x.Key, nhifValueList);
});
struct NHIFRates
{
public decimal Rate { get; set; }
}
나는 병합 및 추가 한 후이 필요하십니까? 나는이 사이트에서 비슷한 과거의 문제를 보았지만 나에게별로 도움이되지 못했다.
각 직원에 대해 첫 번째 사전의 값과 두 번째 사전의 모든 요율을 추가 하시겠습니까? 첫 번째 사전에있는 모든 직원이 두 번째 사전에도 있음을 보장합니까? – svick
나는 caffine이 필요합니다. 조금은 혼란 스러워요. 왜 이것을 사전에 사용하고 있습니까? 좋아요, 두 번째 사전은 사전으로 단순화되었을 수 있습니다. 작업 한 경우 첫 번째 사전을 foreach하고 두 번째로 검색 할 값을 찾으면 작업을 수행하고 새 사전에 항목을 추가하십시오. 그렇지 않으면 다음과 같이 추가하십시오. 아무런 변화가 필요 없습니다. –
BugFinder
@svick 제 1 사전에있는 모든 직원은 둘째로, 즉 완벽하게 매칭됩니다. dict1에서 각각의 값에 더하기 위해 dict2에서 계산 된 각 비율을 추가해야합니다. –