Recebi um teste para resolver algumas questões e quero mostrar as soluções.
LINQ
Seja uma classe
Listemployee = new List () { new Employee() { Name = "John", Salary = 2500, Bonus = 100 }, new Employee() { Name = "Ed", Salary = 3000, Bonus = 100 }, new Employee() { Name = "Taylor", Salary = 2650, Bonus = 150 }, new Employee() { Name = "Mike", Salary = 1580, Bonus = 120 }, new Employee() { Name = "Ted", Salary = 1950, Bonus = 150 }, new Employee() { Name = "Adam", Salary = 2300, Bonus = 0 }, };
1. Implemente um método que retorne a média salarial desta lista.
2. Retorne os nomes das pessoas que ganham acima da média.
3. Faça uma nova lista que retorne a soma do salário e do bonus.
4. Aproveitando o item anterior, retorne uma nova lista das pessoas que ganham abaixo da média (salário + bonus) e acrescente 15%.
Solução:
Para manipular uma lista com 3 colunas foi preciso fazer a classe Employee e o conteúdo foi:
class Employee { public string Name { get; set; } public double Salary { get; set; } public double Bonus { get; set; } }
Para manipular uma lista com 2 colunas foi preciso fazer a classe NomeSalario e o conteúdo foi:
class NomeSalario { public string Name { get; set; } public double SalarioTotal { get; set; } }
O código-fonte completo no método Main() está abaixo:
static void Main(string[] args) { Listemployee = new List () { new Employee() { Name = "John", Salary = 2500, Bonus = 100 }, new Employee() { Name = "Ed", Salary = 3000, Bonus = 100 }, new Employee() { Name = "Taylor", Salary = 2650, Bonus = 150 }, new Employee() { Name = "Mike", Salary = 1580, Bonus = 120 }, new Employee() { Name = "Ted", Salary = 1950, Bonus = 150 }, new Employee() { Name = "Adam", Salary = 2300, Bonus = 0 }, }; Console.WriteLine("A média salarial é {0}", GetMeanSalary(employee)); Console.WriteLine("Os funcionários que ganham acima da média são: "); var nomeSalarioAcimaMedia = NamesAboveMeanSalary(employee); foreach (var item in nomeSalarioAcimaMedia) { Console.WriteLine(item.Name); } Console.WriteLine("\nA lista com nomes e salário total é: "); var nomeSalario = SumSalaryBonus(employee); foreach (var item in nomeSalario) { Console.WriteLine("{0,-7} {1,10}", item.Name, item.SalarioTotal); } Console.WriteLine("A média (salário + bonus) é: {0:C2}\n", GetMeanSalary(nomeSalario)); Console.WriteLine("As pessoas que ganham abaixo da média e tiveram reajuste de 15% são: "); var listaReajustada = GetTotalSalaryBelowMeanApply15percent(nomeSalario); foreach (var item in listaReajustada) { Console.WriteLine("{0,-7} {1,10}", item.Name, item.SalarioTotal); } } static double GetMeanSalary(List lista) { return lista.Sum(x => x.Salary) / lista.Count(); } static List NamesAboveMeanSalary(List lista) { return lista.Where(x => x.Salary > GetMeanSalary(lista)).ToList(); } static List SumSalaryBonus(List lista) { List nomeSal = new List (); foreach (var item in lista) { nomeSal.Add(new NomeSalario() { Name = item.Name, SalarioTotal = item.Salary + item.Bonus}); } return nomeSal; } static double GetMeanSalary(List lista) { return lista.Sum(x => x.SalarioTotal) / lista.Count(); } static List GetTotalSalaryBelowMeanApply15percent(List lista) { var abaixoMediaSalarioTotal = lista.Where(x => x.SalarioTotal < GetMeanSalary(lista)); foreach (var item in abaixoMediaSalarioTotal) { item.SalarioTotal = item.SalarioTotal * 1.15; } return lista; }
A saída do programa da implementação é:
A média salarial é 2330 Os funcionários que ganham acima da média são: John Ed Taylor A lista com nomes e salário total é: John 2600 Ed 3100 Taylor 2800 Mike 1700 Ted 2100 Adam 2300 A média (salário + bonus) é: R$2.433,33 As pessoas que ganham abaixo da média e tiveram reajuste de 15% são: John 2600 Ed 3100 Taylor 2800 Mike 1955 Ted 2415 Adam 2645
Conceitos
1. Sem citar código/tecnologia defina o que é abstração. Cite um exemplo.2. O que é herança? Quais as vantagem de usá-la?
3. O que é polimorfismo?
4. O que é classe e o que é objeto?
O que é débito técnico?
Git
Se você tem uma branch chamada task1234 e quer fazer um merge com a branch master, qual o procedimento?
a) Estar na branch task1234 e digitar git merge masterb)
c)
d) Estar na branch master e digitar git merge task1234
O stash tem uma estrutura de dados:
a) Filab)
c) Pilha
d) Árvore