ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
От: peerAt
10. июля 2012 18:22

В этом посте, я покажу как вытащить максимальные значения в каждой группе используя LINQ.
Вначале рассмотрим класс Employees.

C#

class Employees
{
public int EmpId { get; set; }
public int DeptId { get; set; }
public int Salary { get; set; }
}

Допустим вам нужно найти наибольшую зарплату сотрудника в каждом отделе. Дальше идет соответствующий LINQ запрос:

C#

List<Employees> emp = new List<Employees>();
// populate emp
// emp.Add(new Employees() { EmpId = 1, DeptId = 1, Salary = 20000 });

var highest = from e in emp
group e by e.DeptId into dptgrp
let topsal = dptgrp.Max(x => x.salary)
select new
{
Dept = dptgrp.Key,
TopSal = dptgrp.First(y => y.Salary == topsal).EmpId,
MaximumSalary = topsal
};

Здесь небольшое пояснение. Сначала мы получаем максимальную зарплату используя

let topsal = dptgrp.Max(x => x.salary)

потом мы используем переменную topsal для сравнения ее с зарплатой текущего Employee в отделе и потом выбираем Empid

TopSal = dptgrp.First(y => y.Salary == topsal).EmpId

Вот и все что нужно, чтобы получить иды сотрудников с самой большой зарплатой в каждом департаменте. Для печати результатов, просто используйте цикл и напечатайте значения - foreach(var a in highest){ }.

Это перевод. Оригинал здесь.

Похожие записи


Как найти уникальные текстовые значения с использованием LINQ ?
Сегодня в форумах всплыл еще один хороший способ использования LINQ. Некто спросил как выковырять уникальные значения из последовательности текстов. И еще раз я сказал LINQ-ом ! Мы можем использовать метод Distinct() для того олько уникальные значения. Дальше идет пример кода делающего это: C#var unique = "Apples, Oranges, Apples, Melons" .Split(new string[]...

Вопросы на собеседовании C#, Net, ASP.NET, SQL
Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 2...

Как найти сумму многомерного массива, используя LINQ ?
Здесь написано как найти сумму значений многомерного массива с использованием LINQ. В примере массив имеет 3 строки и 2 колонки: C# using System;using System.Linq;class Program{static void Main(string[] args){ try { var myArray = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } }; var arrSum = ...

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий