অভিধানে একটি নির্দিষ্ট কীটির মান কীভাবে আপডেট করবেন Dictionary<string, int>
?
অভিধানে একটি নির্দিষ্ট কীটির মান কীভাবে আপডেট করবেন Dictionary<string, int>
?
উত্তর:
কেবলমাত্র প্রদত্ত কীতে অভিধানের দিকে নির্দেশ করুন এবং একটি নতুন মান নির্ধারণ করুন:
myDictionary[myKey] = myNewValue;
কীটিকে সূচক হিসাবে অ্যাক্সেস করার মাধ্যমে এটি সম্ভব
উদাহরণ স্বরূপ:
Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary["test"] = 1;
dictionary["test"] += 1;
Console.WriteLine (dictionary["test"]); // will print 2
++dictionary["test"];
অথবা dictionary["test"]++;
কিন্তু শুধুমাত্র যদি কী মান "পরীক্ষা" সঙ্গে অভিধানে একটি এন্ট্রি হয় - যেমন: if(dictionary.ContainsKey("test")) ++dictionary["test"];
else dictionary["test"] = 1; // create entry with key "test"
আপনি এই পদ্ধতির অনুসরণ করতে পারেন:
void addOrUpdate(Dictionary<int, int> dic, int key, int newValue)
{
int val;
if (dic.TryGetValue(key, out val))
{
// yay, value exists!
dic[key] = val + newValue;
}
else
{
// darn, lets add the value
dic.Add(key, newValue);
}
}
আপনি এখানে যে প্রান্তটি পান সেটি হ'ল আপনি অভিধানটিতে কেবল 1 অ্যাক্সেসের সাথে সম্পর্কিত কীটির মানটি পরীক্ষা করে দেখে পান। আপনি যদি উপস্থিতিটি ContainsKey
পরীক্ষা করে ব্যবহার করে মানটি আপডেট করে থাকেন dic[key] = val + newValue;
তবে আপনি অভিধানটি দু'বার অ্যাক্সেস করছেন।
dic.Add(key, newValue);
আপনি ব্যবহার করতে পারেন dic[key] = newvalue;
।
লিনকিউ ব্যবহার করুন: কীটির জন্য অভিধানে অ্যাক্সেস করুন এবং মানটি পরিবর্তন করুন
Dictionary<string, int> dict = new Dictionary<string, int>();
dict = dict.ToDictionary(kvp => kvp.Key, kvp => kvp.Value + 1);
এখানে একটি কী অনুসারে একটি সূচক দ্বারা আপডেট করার একটি উপায় রয়েছে foo[x] = 9
যেখানে x
9 কী রয়েছে
var views = new Dictionary<string, bool>();
foreach (var g in grantMasks)
{
string m = g.ToString();
for (int i = 0; i <= m.Length; i++)
{
views[views.ElementAt(i).Key] = m[i].Equals('1') ? true : false;
}
}
আপডেট - শুধুমাত্র অস্তিত্ব পরিবর্তন করুন। সূচক ব্যবহারের পার্শ্ব প্রতিক্রিয়া এড়াতে:
int val;
if (dic.TryGetValue(key, out val))
{
// key exist
dic[key] = val;
}
আপডেট বা ( যদি ডাইকটিতে মান বিদ্যমান না থাকে তবে নতুন যুক্ত করুন )
dic[key] = val;
এই ক্ষেত্রে:
d["Two"] = 2; // adds to dictionary because "two" not already present
d["Two"] = 22; // updates dictionary because "two" is now present
এটি আপনার পক্ষে কাজ করতে পারে:
দৃশ্য 1: আদিম ধরণের
string keyToMatchInDict = "x";
int newValToAdd = 1;
Dictionary<string,int> dictToUpdate = new Dictionary<string,int>{"x",1};
if(!dictToUpdate.ContainsKey(keyToMatchInDict))
dictToUpdate.Add(keyToMatchInDict ,newValToAdd );
else
dictToUpdate[keyToMatchInDict] = newValToAdd; //or you can do operations such as ...dictToUpdate[keyToMatchInDict] += newValToAdd;
দৃশ্য 2: আমি মূল্য হিসাবে তালিকার জন্য যে পদ্ধতিটি ব্যবহার করেছি
int keyToMatch = 1;
AnyObject objInValueListToAdd = new AnyObject("something for the Ctor")
Dictionary<int,List<AnyObject> dictToUpdate = new Dictionary<int,List<AnyObject>(); //imagine this dict got initialized before with valid Keys and Values...
if(!dictToUpdate.ContainsKey(keyToMatch))
dictToUpdate.Add(keyToMatch,new List<AnyObject>{objInValueListToAdd});
else
dictToUpdate[keyToMatch] = objInValueListToAdd;
আশা করি এটির সহায়তার জন্য কারও পক্ষে এটি কার্যকর।