I suggest you to use List<Employee> instead of ArrayList.
You'll avoid using Object (casting it every time) and your code will be easier to read.
Moreover you'll be able to use the method RemoveAll:
arraylist.RemoveAll(emp => emp.Id == EId);
I rewritten your code fragment, so you can evaluate my advice:
public class BaseEmployee
{
public int Id;
public string Name;
}
public class Employee : BaseEmployee
{
public string Address;
public static Employee Add()
{
var employeeDetail = new Employee();
Console.Write("Employee Id:");
employeeDetail.Id = int.Parse(Console.ReadLine());
Console.Write("Employee Name:");
employeeDetail.Name = Console.ReadLine();
Console.Write("Employee Address:");
employeeDetail.Address = Console.ReadLine();
return employeeDetail;
}
static void Main(string[] args)
{
var arraylist = new List<Employee>();
bool p = true;
while (p)
{
Console.WriteLine("Employee Record Management System\n");
Console.WriteLine("\n1)Add");
Console.WriteLine("\n2)Edit");
Console.WriteLine("\n3)Delete");
Console.WriteLine("\n4)Dispaly");
Console.WriteLine("\n5)Exit");
Console.Write("\n Select operation:");
int Option = int.Parse(Console.ReadLine());
switch (Option)
{
case 1:
arraylist.Add(Employee.Add());
break;
case 4:
foreach (Employee emp in arraylist)
{
Console.Write("{0}\t\t{1}\t\t{2}", emp.Id, emp.Name, emp.Address);
Console.Write("\n");
}
break;
case 3:
Console.Write("Enter Employee Id:");
int EId = int.Parse(Console.ReadLine());
arraylist.RemoveAll(emp => emp.Id == EId);
break;
}
}
}
}
Bye