Dictionary class is a data structure which represents a collection of keys and values pair of data
this resides in name space using System.Collections.Generic;
Dictionary work faster than list collections because it indexes with key and value pair.
key -- Value through which you want to use as a pointer
Value -- This is which will give you result of that pointer.
Dictionary<key, value> capitals = new Dictionary<key, value>();
Dictionary<string, string> capitals = new Dictionary<string, string>();
capitals.Add("Assam", "Dispur");
capitals.Add("Bihar", "Patna");
capitals.Add("Goa", "Panaji");
capitals.Add("Haryana", "Chandigarh");
Calling:
Getting Result Directly By Indexing
string capitalResult = capitals["Goa"];
This will result captialResult = "Panji"
Using Dictionary with classes:
public class State
{
public string Capital {get; set;}
public int Educations {get; set;}
public int Size {get; set;}
public State(string capital, int educ, int size)
{
Capital = capital;
Population = pop;
Size = size;
}
Method which bind objects to dictionary
public static Dictionary<string, State> GetStates()
{ //Referencing State Class
var states = new Dictionary<string,State>();
var myState1 = new State("Dispur",1234567,123);
states.Add("Asam", mystate1)
var myState2 = new State("Banglore",1234567,123);
states.Add("Bihar", mystate2)
};
}
Calling Part...
we can call it as
var stateResult = State.GetStates();
string capitalofBihar = stateResult["Bihar"].Capital;
Result:- "Banglore".
Above are simple steps for working with dictionary.
Working Objects with List<object>
State st1 = new State(){State="Banglore",Capital="Patna",Educations = 12345,Size=123}
State st2 = new State(){State="Asam",Capital="Dispur",Educations = 12345,Size=123}
State st3 = new State(){State="Goa",Capital="Punji",Educations = 12345,Size=123}
List<State> listStates = new List<State>();
listStates.Add(st1);
listStates.Add(st2);
listStates.Add(st3);
Calling Part...
State result = listStates.Find(state => state.Capital == capitalnamevalue);
if(result == null)
{
...do whatever you want
}
else{
result.State,result.Capital,result.Size;
}
For Indexing we can also bind object attributes in dictionary based on its type and make indexing fast.
Dictionary<string, string> capitals = new Dictionary<string, string>();
capitals.Add(st1.Capital, "Dispur");
capitals.Add(st2.Capital, "Patna");
capitals.Add(st3.Capital, "Panaji");
capitals.Add(st4.Capital, "Chandigarh");
0 comments:
Post a Comment