using System.Collections.Generic;
namespace BicNet.Projects.Generics.Refresher
{
public partial class Refresher1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List<Ninja> ninjas = new List<Ninja>();
ninjas.Add(new Ninja(26, "Ryan Ternier"));
ninjas.Add(new Ninja(23435, "You"));
ninjas.Add(new Ninja(0, "Ryan's New Kid"));
ninjas.Add(new Ninja(4, "Xana"));
ninjas.Add(new Ninja(4, "Hobbs"));
ninjas.Add(new Ninja(-1, "Trogdor"));
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<h1>List As Is</h1> using ForEach<br/> ");
sb.Append("<br/><ul>");
ninjas.ForEach(delegate(Ninja n)
{
sb.Append(String.Format("<li>{0}, ({1})</li>", n._name, n._age));
});
sb.Append("</ul><br/>");
///////////////////////////////////////
sb.Append("<h1>Age is greater or equal to 0</h1>using FindAll,and foreach<br/> ");
sb.Append("<br/><ul>");
List<Ninja> thoseAlive = ninjas.FindAll(delegate(Ninja n)
{
return n._age >= 0;
});
thoseAlive.ForEach(delegate(Ninja n)
{
sb.Append(String.Format("<li>{0}, ({1})</li>", n._name, n._age));
});
sb.Append("</ul><br/>");
////////////////////////////////////////
sb.Append("<h1>let's Sort Them</h1>using Sort<br/> ");
sb.Append("<br/><ul>");
ninjas.Sort(delegate(Ninja n1, Ninja n2)
{
return n1._name.CompareTo(n2._name);
});
ninjas.ForEach(delegate(Ninja n)
{
sb.Append(String.Format("<li>{0}, ({1})</li>", n._name, n._age));
});
sb.Append("</ul><br/>");
/////////////////////////////////////////
FemaleNinja femaleNinja = new FemaleNinja("Ryan", 29, "Ange");
ninjas.Add(femaleNinja);
sb.Append("<h1>Get all Female Ninja</h1>using Foreach<br/> ");
sb.Append("<br/><ul>");
ninjas.ForEach(delegate(Ninja n)
{
if (n.GetType() == typeof(FemaleNinja))
sb.Append(String.Format("<li>{0}, ({1}). Husband: {2}</li>", n._name, n._age, ((FemaleNinja)n)._husband));
});
sb.Append("</ul><br/>");
sb.Append("</ul><br/>");
lblData.Text = sb.ToString();
}
}
public class Ninja
{
public int _age;
public string _name;
public Ninja(int age, string name)
{
this._age = age;
this._name = name;
}
}
public class FemaleNinja : Ninja
{
public string _husband;
public FemaleNinja(string husband, int age, string name)
: base(age, name)
{
this._husband = husband;
}
}
}