using System.Collections.Generic;
public static void Main()
var data = new List<Rooms>();
data.AddRange(new List<Rooms>() { new Rooms() { Id = 0, Name = "Room", Code = "A" }, new Rooms() { Id = 998, Name = "Room", Code = "B" }, new Rooms() { Id = 59, Name = "Room", Code = "C" }, new Rooms() { Id = 62, Name = "Room CDE", Code = "D" }, new Rooms() { Id = 75, Name = "Room", Code = "E" },new Rooms() { Id = 80, Name = "Room", Code = "Z" },new Rooms() { Id = 10, Name = "Room ABC", Code = "R" } });
Console.WriteLine(data.Count());
Rooms objRoom = data.Where(x=> x.Id == 62).FirstOrDefault();
if(objRoom != null) Console.WriteLine(objRoom.Id);
IEnumerable<IGrouping<string, Rooms>> groups = data.GroupBy(x=> x.Name).ToList();
Dictionary<string, List<Rooms>> dic = groups.ToDictionary(g=> g.Key, g=>g.ToList());
foreach(KeyValuePair<string, List<Rooms>> kvp in dic)
Console.WriteLine(string.Format("Room Name : {0}, Max Id : {1}",kvp.Key, kvp.Value.Max(x=> x.Id)));
public int Id { get; set; }
public string Name { get; set; }
public string Code { get; set; }