我學習C#和合並兩個字典,所以我可以加入都發現價值所需要的。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);
});
第二屆字典是nhifRatesDictionary持有被添加到第一詞典每名員工的每個值率。
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; }
}
總之我需要這個合併和添加後:
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
如何實現這一目標?我已經查看了過去在這個網站上遇到的類似問題,但對我沒有太大的幫助。
你的意思是你希望從第一詞典和第二詞典爲每個員工所有的利率增加價值?是否保證第一本字典中的每個員工都在第二個字典中? – svick
我一定需要caffine。我有點困惑你的代碼。你爲什麼要爲此使用字典? OK,那麼,你的第二個字典,可能已被簡化爲一個字典,如果你與合作,FOREACH第一字典,查找值,如果在第二,做工作,添加項目到新的字典,否則只需添加它作爲不需要更改 –
BugFinder
@svick第一本詞典中的每位員工都將處於第二位,即完美匹配。我需要將dict2中計算的每個費率添加到dict1中的相應值 –