Monday, 20 July 2015

Linq Related Techniques(group by,Getvalues in comma separator from data table,not in)

(1)Linq query on DataTable get top 10 records based on group by
=============================================================
DataSet resultSet = new DataSet();
if (resultSet.Tables[0].Rows.Count > 0)
                {
                    var groupedData = (from b in resultSet.Tables[0].AsEnumerable()
                                       group b by b.Field<int>("CityId") into g
                                       orderby g.Sum(x => x.Field<int>("AppointmentCount")) descending
                                       select new
                                       {
                                           CityId = g.Key,
                                           AppCount = g.Sum(x => x.Field<int>("AppointmentCount"))
                                       }).Take(10);
                    foreach (var item in groupedData)
                    {
                        intermediateAppointmentCount = intermediateAppointmentCount +    Convert.ToInt32(item.AppCount);
                    }
                }

Input datatable
====================
AppointmentCount    CityId
==================== 
    2                              1
    2                             12
    1                             12

(2) Source is datatable out put is get single column values as coma seperator
==========================================================
DoctorXSpecialitiesDataViewResult = DoctorXSpecialitiesDataView.ToTable();
 var SpecialityIds = DoctorXSpecialitiesDataViewResult.AsEnumerable().Select(r => r.Field<int>(1)).Distinct();
  SpecialitiesIDWithComa = string.Join(",", SpecialityIds);

(3)Select distinct id in list
===========================================================

if (specialityList.Any())
            {
                model.Specialities = specialityList.GroupBy(x => x.SpecialityId)
                   .Select(grp => grp.First())
                   .ToList();

                model.Specialities = model.Specialities.OrderBy(x => x.SpecialityName).ToList();

            }

(4)Not in link query
=========================================================
List<string> specialitiesnotin=new List<string>();

 var getDocDataEach = (from doc in getDocData
                     select new { city = doc.CityName, keyword = doc.keyword }).Distinct().ToList();

 specialitiesnotin.AddRange(new string[]{"gynecologist","orthopedic","neurologist","dermatologist","pediatrician",
                "urologist","cardiologist","gastroenterologist","oncologist","diabetologist"});

 getDocDataEach = getDocDataEach.Where(x => !specialitiesnotin.Contains(x.keyword.ToLower())).ToList();
            removeDataListEach = removeDataListEach.Where(x => !specialitiesnotin.Contains(x.keyword.ToLower())).ToList();

No comments:

Post a Comment