using System.Collections;
using System.Collections.Generic;
private static List<Combination> _Combinations = new List<Combination>();
public static void Main()
_Combinations.Add(new Combination{ CombinationSet = new List<int>{ 1, 2, 3}});
_Combinations.Add(new Combination{ CombinationSet = new List<int>{ 2, 3, 4}});
_Combinations.Add(new Combination{ CombinationSet = new List<int>{ 3, 2, 1}});
_Combinations.Add(new Combination{ CombinationSet = new List<int>{ 1, 2, 3}});
Console.WriteLine("Test 1 (1,2,3)");
foreach(var result in FindCombinations(1,2,3))
Console.WriteLine(result.ToString());
Console.WriteLine("Test 1 (3,2,1)");
foreach(var result in FindCombinations(3,2,1))
Console.WriteLine(result.ToString());
Console.WriteLine("Test 1 (1,2)");
foreach(var result in FindCombinations(1,2))
Console.WriteLine(result.ToString());
public static List<Combination> FindCombinations(params int[] values)
var result = _Combinations
.Where(c => c.IsSequenceEqual(values))
public List<int> CombinationSet { get; set; }
public bool IsSequenceEqual(params int[] values)
return Enumerable.SequenceEqual(CombinationSet, values);
public override string ToString()
return string.Join(", ", CombinationSet);