using System.Collections.Generic;
static public int[] GenerateArray(int count) {
var array = new int[count];
for (int i = 0; i < count; i++)
array[i] = rnd.Next(-100, 100);
static public List<KeyValuePair<int, int>> FindPair(int[] array, int m)
var result = new List<KeyValuePair<int, int>>();
var dict = new Dictionary<int, List<int>>();
for (int i = 0; i < array.Length; i++)
if (dict.ContainsKey(temp)) {
foreach(var item in dict[temp])
result.Add(new KeyValuePair<int, int>(i, item));
if (dict.ContainsKey(array[i]))
dict.Add(array[i], new List<int> { i });
public static void Main()
var array = GenerateArray(1000);
var result = FindPair(array, 10);
foreach(var item in result){
Console.WriteLine("Pair: {0}({1}) - {2}({3})", item.Key, array[item.Key], item.Value, array[item.Value]);