Showing posts with label LINQ. Show all posts
Showing posts with label LINQ. Show all posts

Tuesday, July 1, 2014

linq max count of list


                var max = data.Max(p => p.SubList.Count);
                var maxData = data.FirstOrDefault(p => p.SubList.Count == max);

Friday, August 10, 2012

linq select in query


ToSearchList extension creates list of strings, permutation of given text
Ex:  var list = "tuğbay".ToSearchList();
list contains tuğbay, tüğbay, tugbay, tügbay


if (!String.IsNullOrEmpty(searchText))
            {
                var searchList = searchText.ToSearchList();
                query = from p in query
                             from sl in searchList
                        where p.User.name.ToLower().Contains(sl)
                              || p.User.surname.ToLower().Contains(sl)
                              || p.User.email.ToLower().Contains(sl)
                        select p;
            }

Sunday, July 22, 2012

linq group by count


public IEnumerable DrillCountInTrainings()
        {
            var query = from t in context.TRAININGS
                        join td in context.TRAINING_DRILLS on t.training_id equals td.training_id
                        join d in context.DRILLS on td.drill_id equals d.drill_id
                        group t by new { t.name, t.date, t.training_id } into grp
                        orderby grp.Key.date descending
                        select new SuccessReportResultDTO
                        {
                            Name = grp.Key.name,
                            Value = grp.Count(),
                            IdealValue = 0,
                            MeanValue = 0
                        };

            return query;
        }

Wednesday, June 6, 2012

LINQ group by Count and Avarage/avg


var query = from q in this.context.TRAINING_PLAYER
                        group q by q.session_id into grp
                        select new
                        {
                            sessionId = grp.Key,
                            count = grp.Select(p => p.player_id).Distinct().Count()
                        };

            var mean = query.Average(p => p.count);

Monday, June 4, 2012

Random data with LINQ

Random data with LINQ

in Memory

var rnd = new Random();
var data = datas[rnd.Next(datas.Count)];  //execute immediately

on Database

var rnd = new Random();
var count = data.Count();  //execute
var data = datas.ElementAt(rnd.Next(count)) //no execution
var result = data.ToList(); //execute query

Or

//no execution
var data = datas.OrderBy(p=> Guid.NewGuid()).Skip(rnd.Next(count)) 

Thursday, May 31, 2012

Get week data with LINQ


Get week data with LINQ

var today = DateTime.Now;
var dayOfWeek = -(int)date.DayOfWeek;
// start is prev sunday 00:00:00
var start = today.Date.AddDays(dayOfWeek); 
// end is next sunday 00:00:00
var end = start.AddDays(7);                           


var query = from q in data
            where q.Date >= start              // include start date
            && q.Date < end            // exclude end date
            select q;

Ignore time portion of datetime in LINQ

Ignore time portion of datetime in LINQ

using System.Data.Entity


public class TestClass
{
   public void TestMethod()
   {
      ShellContext db = new ShellContext();
        DateTime today = DateTime.Now;



var query = (from q in db.People
        where EntityFunctions.TruncateTime(q.CreateDate) < today.Date
        select q).FirstOrDefault();
    }
}