Как подсчитать элементы массива с одинаковыми значениями? - C#
Формулировка задачи:
Есть массив из 10 элементов.
3 и 7 элементы имеют одинаковое
значение. Нужно, найти в массиве
элементы с одинаковыми значениями
и подсчитать их.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TestArray
{
class Program
{
static void Main(string[] args)
{
string[] array = new string[]
{"abc","def","ghi","jkl","mno","pqr","ghi","stu","vwx","yz11"};
for(int i = 0; i < array.Length; i++)
{
Console.WriteLine("{0}\t", array[i]);
}
Console.ReadLine();
}
}
}Решение задачи: «Как подсчитать элементы массива с одинаковыми значениями?»
textual
Листинг программы
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<int> lst = Enumerable.Repeat(new Random(), 20).Select(r => r.Next(10)).ToList();
Console.WriteLine(String.Join(", ", lst));
Console.WriteLine(String.Join(", ", lst.GroupBy(x => x).Where(g => g.Skip(1).Any()).Select(g => Tuple.Create(g.Key, g.Count()))));
// Или так
Console.WriteLine(String.Join(", ", lst.Aggregate(new Dictionary<int, int>(), (d, x) => { int n; if (!d.TryGetValue(x, out n)) n = 0; d[x] = ++n; return d; }).Where(kv => kv.Value != 1).Select(kv => Tuple.Create(kv.Key, kv.Value))));
}
}