using System.Collections.Generic;
using System.Diagnostics;
private static Random random = new Random((int)DateTime.Now.Ticks);
public static void Main()
Console.WriteLine("Hello World");
IList<Employee> employee = GetEmployees();
Stopwatch sw = new Stopwatch();
var t1 = employee.Where(x=>x!=null).Where(x=>x.EmpID>10).Where(x=>x.Rank>2).Select(x=>x.EmpName).ToList();
var tm1 = sw.ElapsedTicks;
var t2 = employee.Where(x=>x!=null && x.EmpID>10 && x.Rank>2).Select(x=>x.EmpName).ToList();
var tm2 = sw.ElapsedTicks;
private static IList<Employee> GetEmployees()
var arrNames = new string[1000];
for(var i=0; i<arrNames.Length; i++)
arrNames[i] = RandomString(8);
var res = new List<Employee>(arrNames.Length);
foreach(var s in arrNames)
res.Add(new Employee() {EmpID = random.Next(0, arrNames.Length), EmpName=s, EmpMarks=random.Next(0, 100), Rank=random.Next(0, 10)});
private static string RandomString(int length)
const string pool = "abcdefghijklmnopqrstuvwxyz0123456789";
var builder = new StringBuilder();
for (var i = 0; i < length; i++)
var c = pool[random.Next(0, pool.Length)];
return builder.ToString();
public int EmpID { get; set; }
public string EmpName { get; set; }
public int EmpMarks { get; set; }
public int Rank { get; set; }