using System.Collections.Generic;
public static int[][] PairFunction(int [] inputArray, int targetNumber)
var indexDic = new Dictionary<int, int>();
var results2 = new Dictionary<int, int>();
for (int i = 0; i < inputArray.Length; i++)
if (indexDic.ContainsKey(targetNumber - inputArray[i]))
results2.Add(inputArray[indexDic[targetNumber - inputArray[i]]] ,inputArray[i]);
indexDic.Add(inputArray[i], i);
int[][]results = new int[count][];
for (int j = 0; j < results2.Count; j++)
results[j] = new int[2] { results2.ElementAt(j).Key , results2.ElementAt(j).Value };
public static void Main()
int[] A = { 1,2,3,4,5,7 };
int[][] pairArray = PairFunction(A, sum);
string[] stringOuput = pairArray.Select(n => "[" + String.Join(",", n) + "]").ToArray();
Console.WriteLine(String.Join(",", stringOuput));