var _hardwarePerf = (from _stats in _statsList where _time>=DateTime.Parse("2012-04-04 00:00:00") &&_time<=DateTime.Parse("2012-04-04 11:00:00") select new { Latency = _stats.latency, CpuUsagePercent = _stats.cpuUsagePercent, MemoryUsagePercent = _stats.memoryUsagePercent, DiskUsage = _stats.diskUsage, DiskRead = _stats.diskRead, DiskWrite = _stats.diskWrite }).Average(Latency => Latency.Latency);
var query = from _stats in _statsList group _stats by new { Latency = _stats.latency, CpuUsagePercent = _stats.cpuUsagePercent, MemoryUsagePercent = _stats.memoryUsagePercent, DiskUsage = _stats.diskUsage, DiskRead = _stats.diskRead, DiskWrite = _stats.diskWrite } into myGroup select new { AverageVal = myGroup.Average(x => x.Value), CpuUsagePercent = myGroup.Key.CpuUsagePercent, ... };
var averages = new { Latency = filteredStats.Average(x => x.Latency), CpuUsagePercent = filteredStats.Average(x => x.CpuUsagePercent), … };
var _hardwareAccumulator = _statsList .Where(s => s.time >= DateTime.Parse("2012-04-04 00:00:00") && s.time <= DateTime.Parse("2012-04-04 11:00:00")) .Aggregate( new { count = 0, cpuUsagePercent = 0.0, memoryUsagePercent = 0.0, diskUsage = 0.0, diskRead = 0.0 }, (acc, s) => new { count = acc.count + 1, cpuUsagePercent = acc.cpuUsagePercent + s.cpuUsagePercent, memoryUsagePercent = acc.memoryUsagePercent + s.memoryUsagePercent, diskUsage = acc.diskUsage + s.diskUsage, diskRead = acc.diskRead + s.diskRead } ); var _hardwarePerf = new { cpuUsagePercent = _hardwareAccumulator.cpuUsagePercent / _hardwareAccumulator.count, memoryUsagePercent = _hardwareAccumulator.memoryUsagePercent / _hardwareAccumulator.count, diskUsage = _hardwareAccumulator.diskUsage / _hardwareAccumulator.count, diskRead = _hardwareAccumulator.diskRead / _hardwareAccumulator.count };
var averages = statsList.Where(s => s.time >= new DateTime(2012, 4, 4) && s.time <= new DateTime(2012, 4, 04, 11, 0, 0)) .GroupBy(s => 1) .Select(grp => new { Latency = grp.Average(s => s.latency), CpuUsagePercent = grp.Average(s => s.cpuUsagePercent), MemoryUsagePercent = grp.Average(s => s.memoryUsagePercent), DiskUsage = grp.Average(s => s.diskUsage), DiskRead = grp.Average(s => s.diskRead), DiskWrite = grp.Average(s => s.diskWrite) }).FirstOrDefault();
var newList = list.GroupBy(x => new {x.School, x.Friend, x.FavoriteColor}) .Select(y => new ConsolidatedChild() { FavoriteColor = y.Key.FavoriteColor, Friend = y.Key.Friend, School = y.Key.School, Children = y.ToList() } );
var result = (from ls in list1 group ts by new {ls.Counter, ls.SrvID} order by ls.ID select new{ ls.ID, ls.Counter.FirstOrDefault(), ls.SrvID.First, ls.FirstName}).ToList()
list1.GroupBy(item => new { Counter = item.Counter, SrvID = item.SrvID }) .Select(group => new { ID = group.First().ID, Counter = group.Key.Counter, SrvID = group.Key.SrvID, FirstName = group.First().FirstName}) .OrderBy(item => item.ID);
var query = from record in list1 group record by new {record.Counter, record.SrvID } into g let winner = ( from groupedItem in g order by groupedItem.ID select groupedItem ).First() select winner;
var stats = ( from a in entities.Articles group a by a.UserId into g select new { UserId = g.Key, TotalPosts = g.Count(), LastUpdated = g.Max(i => i.DatePosted) } ); var query = ( from u in entities.Users join s in stats on u.UserId equals s.UserId orderby u.Name select new UserListing() { UserId = u.UserId, Name = u.Name, Email = u.Email, TotalPosts = s.TotalPosts, LastUpdated = s.LastUpdated } );
var query = ( from u in entities.Users join s in stats on u.UserId equals s.UserId into g from a in g.DefaultIfEmpty() orderby u.Name select new UserListing() { UserId = u.UserId, Name = u.Name, Email = u.Email, TotalPosts = a.TotalPosts, LastUpdated = a.LastUpdated } );
var stats = ( from a in entities.Articles group a by a.UserId into g select new { UserId = g.Key, TotalPosts = (int?)g.Count(), LastUpdated = g.Max(i => i.DatePosted) } ); var query = ( from u in entities.Users join s in stats on u.UserId equals s.UserId into joinedStats from s in joinedStats.DefaultIfEmpty() // do left outer join orderby u.Name select new UserListing() { UserId = u.UserId, Name = u.Name, Email = u.Email, TotalPosts = s.TotalPosts, // null if doesn't contain stats LastUpdated = s.LastUpdated // default DateTime if doesn't contain stats } );
Func<DateTime, object> groupByClause; if (groupByDay) groupByClause = date => date.Date; else if (groupByMonth) groupByClause = date => new { date.Year, date.Month}; else throw new NotSupportedException("Some option should be chosen"); var result = data.Where(d => d.Type == "Deposit") .GroupBy(groupByClause) .Select(g => new { DateKey = g.Key, TotalDepositAmount = g.Sum(d => d.Amount), DepositCount = g.Count(), });
var auta = from e in (from a in DtPoruchy.FindAll() where a.SERVIS >= 3 join p in MtAuta.FindAll() on a.MtAuta equals p.Id into ap from ap2 in ap.DefaultIfEmpty() select new { Cena = ap.cena, IdAuta = a.MtAuta, Servis = a.servis }) group e by e.IdAuta into g select new { Cena = g.Sum(e => e.cena), IdAuta = g.Key, Servis = g.Max(e => e.servis) };
var auta = from jo in ( from a in MtAuta.FindAll() join p in DtPoruchy.FindAll() on a equals p.MtAuta into ap from ap2 in ap.DefaultIfEmpty() where ap2.SERVIS >= 3 select new { Cena = ap2.CENA, Idauto = ap2.ID_AUTA, Servis = ap2.SERVIS } ) group jo by jo.Idauto into g select new { Cena = g.Sum(jo => jo.Cena), IdAuto = g.Key, Servis = g.Max(jo => jo.Servis) };
WriteRankedList(from game in games group game by game.WinningPitcher into g orderby g.Count() descending select g); WriteRankedList(games.GroupBy(g => g.WinningPitcher). OrderByDescending(g => g.Count())); WriteRankedList(from game in games where game.Save != null group game by game.Save into g orderby g.Count() descending select g); var battingAverageLeaders = from game in games from play in game.GetPlays() where play.Result != null group play by play.Batter into g where g.Count(p => p.Result.IsAtBat) > 400 let pd = new PlayerData { Player = g.Key, Data = (Math.Round(1000.0d * ((double)g.Count(p => p.Result.IsHit) / (double)g.Count(p => p.Result.IsAtBat))) / 1000.0d). ToString(".000") } orderby pd.Data descending select pd; var battingAverageLeaders = games.SelectMany(g => g.GetPlays()).Where(p => p.Result != null). GroupBy(p => p.Batter).Where(g => g.Count(p => p.Result.IsAtBat) > 400). Select(g => new PlayerData { Player = g.Key, Data = (Math.Round(1000.0d * ((double)g.Count(p => p.Result.IsHit) / (double)g.Count(p => p.Result.IsAtBat))) / 1000.0d). ToString(".000") }).OrderByDescending(pd => pd.Data); Func<Play, bool> obaPredicateTop = (p => p.Result.IsHit || p.Result == PlayResult.Walk || p.Result == PlayResult.IntentionalWalk || p.Result == PlayResult.HitByPitch); Func<Play, bool> obaPredicateBottom = (p => p.Result.IsAtBat || p.Result == PlayResult.Walk || p.Result == PlayResult.IntentionalWalk || p.Result == PlayResult.HitByPitch || p.Result == PlayResult.SacrificeFly); var onBaseAverage = from game in games from play in game.GetPlays() where play.Result != null group play by play.Batter into g where g.Count() > 400 let pd = new PlayerData { Player = g.Key, Data = (Math.Round(1000.0d * ((double)g.Count(obaPredicateTop) / (double)g.Count(obaPredicateBottom))) / 1000.0d). ToString(".000") } orderby pd.Data descending select pd;