In C# Collections are in-built data structures,to store & Retrieve structural information. It is classified into generic & non-generics.
In non-generic all types will return as object class, need to type cast it to appropriate type. So non-generic collections are weakly typed.
in Generics appropriate type will be given at compile time, all objects return same type not object type, so it is strongly typed.
Non-Generic Collections included in System.Collections Namespace
Generics included in System.Collections.Generic.
Generic Collections
In non-generic all types will return as object class, need to type cast it to appropriate type. So non-generic collections are weakly typed.
in Generics appropriate type will be given at compile time, all objects return same type not object type, so it is strongly typed.
Non-Generic Collections included in System.Collections Namespace
Generics included in System.Collections.Generic.
Generic Collections
- List<T>
- Stack<T> & Queue<T>
- Dictionary<TKey,TValue>
- HashSet<T>
- LinkedList<T>
1.List<T>
public class Stocks
{
public string Symbol{get;set;}
public decimal price{get;set;}
public DateTime dt{get;set;}
}
Create list of Stock objects.
List<Stocks> stockList = new List<Stocks>();
Insert Items into List
stockList.Add(new Stocks{ dt=System.DateTime.Now,Symbol="CSCO", price=22.23M});
stockList.Add(new Stocks { dt = System.DateTime.Now, Symbol = "MSFT", price = 28.99M });
stockList.Add(new Stocks { dt = System.DateTime.Now, Symbol = "IBM", price = 88.90M });
stockList.Add(new Stocks { dt = System.DateTime.Now, Symbol = "FB", price = 22.23M });
stockList.Add(new Stocks { dt = System.DateTime.Now, Symbol = "GooG", price = 580.97M });
Insert Items into List
stockList.Add(new Stocks{ dt=System.DateTime.Now,Symbol="CSCO", price=22.23M});
stockList.Add(new Stocks { dt = System.DateTime.Now, Symbol = "MSFT", price = 28.99M });
stockList.Add(new Stocks { dt = System.DateTime.Now, Symbol = "IBM", price = 88.90M });
stockList.Add(new Stocks { dt = System.DateTime.Now, Symbol = "FB", price = 22.23M });
stockList.Add(new Stocks { dt = System.DateTime.Now, Symbol = "GooG", price = 580.97M });
Capacity of List class stockList: Initial is 4, there after it will be incremented by 4.
so stockList capacity is 8.
Trim stockList capacity to 5 i.e trim to number of elements in the List by calling
stockList.TrimExcess(); //output would be 5 otherwise 8.
List to Array Conversion
Stocks[]stocksinArray=stockList.ToArray();
Access List Elements by Index
try
{
for(int i=0; i < stockList.Count;i++)
{
Stocks firstElement = stockList[i];
Console.WriteLine("Symbol={0},price={1},date={2}", firstElement.Symbol, firstElement.price, firstElement.dt);
}
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine(ex.Message);
}
Find Stock based on Field.i.e Symbol
bool exists=stockList.Exists(s => s.Symbol == "IBM");
Console.WriteLine("is IBM Stock exists={0}",exists);
No comments:
Post a Comment