Удаление повторяющихся записей из массивов - C#
Формулировка задачи:
Коллеги, помогите пожалуйста. Сломал голову напрочь. Задача следующая: Есть четыре одномерных массива - 2 string, 1 int, 1 double, например:
Необходимо получить (Желательно тоже четырьмя массивами):
Заранее спасибо за помощь.
| ФД-133 | Петя | 1 | 22,00 |
| МС-155 | Маша | 2 | 11,00 |
| ТР-122 | Сережа | 1 | 10,00 |
| ИП-111 | Катя | 3 | 15,00 |
| ФД-133 | Петя | 4 | 22,00 |
| МС-155 | Маша | 7 | 11,00 |
| ТР-122 | Сережа | 5 | 10,00 |
| ИП-111 | Катя | 1 | 15,00 |
| ФД-133 | Петя | 5 | 22,00 |
| МС-155 | Маша | 9 | 11,00 |
| ТР-122 | Сережа | 6 | 10,00 |
| ИП-111 | Катя | 4 | 15,00 |
Решение задачи: «Удаление повторяющихся записей из массивов»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2 {
class Program {
static void Main(string[] args) {
string[] partNumber = { "ФД-133", "МС-155", "ТР-122", "ИП-111", "ФД-133", "МС-155", "ТР-122", "ИП-111" };
string[] name = { "Петя", "Маша", "Сережа", "Катя", "Петя", "Маша", "Сережа", "Катя" };
int[] count = { 1, 2, 1, 3, 4, 7, 5, 1 };
double[] price = { 22.00, 11.00, 10.00, 15.00, 22.00, 11.00, 10.00, 15.00 };
var items = Enumerable.Range(0, partNumber.Length)
.Select((i, j) => new { PartNumber = partNumber[j], Name = name[j], Count = count[j], Price = price[j] })
.GroupBy(i => i.Name)
.Select(i => new { Name = i.Key, Count = i.Sum(n => n.Count),
Price = i.Select(m => m.Price).FirstOrDefault()});
foreach (var i in items) {
Console.WriteLine(i.ToString());
}
Console.ReadLine();
}
}
}