using System.Collections.Generic;
public static void Main()
IEnumerable<int> numbers = Enumerable.Range(1, 45).Select(n => n);
IEnumerable<int> firstLottoNumbersGenerate = numbers.OrderBy(g => System.Guid.NewGuid()).Take(6);
int[] firstLottoNumbers = firstLottoNumbersGenerate.OrderBy(n => n).ToArray();
Console.Write("Result(first, loop count 0): {0}", string.Join(",", firstLottoNumbers));
Action<string, int> printLineSplit = (s, n) => Console.WriteLine("\n{0}", string.Concat(Enumerable.Repeat<string>(s, n)));
const int LOTTO_NUMBER_COUNT = 6;
int[] secondLottoNumbers = new int[LOTTO_NUMBER_COUNT];
while(elementCount < LOTTO_NUMBER_COUNT)
var rns = ((new System.Random(unchecked((int)DateTime.Now.Ticks + loopCount++)).Next()) % 45 ) + 1;
if(hasNumber(secondLottoNumbers, rns) == 0)
secondLottoNumbers[elementCount++] = rns;
Console.Write("Result(second, loop count {1}): {0}", string.Join(",", secondLottoNumbers.OrderBy(n => n).ToArray()), loopCount);
int[] thirdLottoNumbers = new int[6];
IEnumerable<int> thirdLottoNumbersObject = Enumerable.Range(1, 45).ToArray();
var intersects = firstLottoNumbers.Intersect(secondLottoNumbers);
Console.Write("Result(intersect): {{{0}}}, matched: {1}", string.Join(",", intersects.OrderBy(n => n).ToArray()), intersects.Count());
public static int hasNumber(int[] numbers, int n)
for(int i = 0; i < numbers.Count(); i++)