I have recently been asked to do a test prior to an interview to test my C# skills. I am fairly new to C# (6 months) and I think this showed with me producing an overly complex answer to their questions. I have asked for feedback on my answer to help me improve, however they were not keen to give me an help with the proper solution. I was therefore hoping someone on here could give me a helping hand and tell me where I went wrong. I accidently posted this question on StackOverflow not knowing that site was not for questions like this and got told the code below is very poor. I would really appreciate some code examples, even small ones of how I can improve as I am very eager to learn but not sure how without any guidance. I will post the 3 questions below as well as my answers. Please can someone give me a better solution to this. I had thought about using Linq as well to do this, but again wasn't really sure how. I also tried to add delegates into the mix, but not sure if I should have done this or not. Also I wasnt sure what tests to do in my unit testing, again any quick examples would be very appreciated. > ###Question 1 > > Write a program that prints the numbers from 1 to 100. For multiples > of three print “Three” and for the multiples of five print “Five" and > for numbers which are multiples of both three and five print > “ThreeFive”. > > ###Question 2 > > If we list all the whole numbers up to 15 that are multiples of 3 or > 5, we get 3, 5, 6 and 9, 10, 12, 15. The sum of these multiples is 60. > Find the sum of all the multiples of 3 or 5 up to 1000. > > ###Question 3 > > Calculate the sum of all the even numbers in the Fibonacci sequence > (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, etc.) where each number in the > sequence represents the sum of the previous two, up to 4,000,000. > > ###Bonus Points > > - Unit tests your solutions > - Bases the answer to 1 and 2 on the same ‘number generator’ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestPaperApp { public class TestPaperTestQuestions { public static List<string> TestPaperList = new List<string>(); public static List<int> SumItUpList = new List<int>(); public static List<int> FibonacciList = new List<int>(); public static string range; public delegate void Question(int number); public static void Main(string[] args) { // Write numbers 1-100 - multiples of 3 write 'Three' multiples of 5 print ‘Five’ multiples of both print 'ThreeFive' QuestionOne(1, 100); //Sum the numbers between 1-1000 which are divisible by 3 or 5 QuestionTwo(1, 1000); //Sum the even Fibonacci numbers less than 4,000,000 QuestionThree(4000000); } public static void GenerateSequence(int startNumber, int finishNumber, Question Quest) { //Clear the lists for each time the sequence is ran SumItUpList.Clear(); TestPaperList.Clear(); //look from the start number to finish number and add the relevent values to the different lists for (int i = startNumber; i <= finishNumber; i++) { //Use delegate to make number generator reusable Quest(i); // get the range of the numbers you are looping through to add to the title labels range = startNumber.ToString() + "-" + finishNumber.ToString(); } } public static void TestPaperListAdd(int i) { if (i % 3 == 0 && i % 5 == 0) { TestPaperList.Add("ThreeFive"); } else if (i % 3 == 0) { TestPaperList.Add("Three"); } else if (i % 5 == 0) { TestPaperList.Add("Five"); } else { TestPaperList.Add(i.ToString()); } } public static void SumItUpListAdd(int i) { if (i % 3 == 0 || i % 5 == 0) { SumItUpList.Add(i); } } public static List<String> QuestionOne(int start, int finish) { //Run the generate sequence method GenerateSequence(start, finish, TestPaperListAdd); Console.WriteLine("--- Write the numbers between " + range + " if the number is a multiples of 3 write 'Three'," + "a multiple of 5 print 'Five' and a multiple of both print 'ThreeFive' ---"); //Loop through all values and write to console window for (int i = 0; i < TestPaperList.Count(); i++) { Console.WriteLine(TestPaperList[i]); } return TestPaperList; } public static int QuestionTwo(int start, int finish) { //Run the generate sequence method GenerateSequence(start, finish, SumItUpListAdd); int sum = SumItUpList.Sum(); Console.WriteLine("--- Sum of all numbers between " + range + " divisible by 3 or 5 ---"); //Display sum of values in the console window Console.WriteLine(sum); return sum; } public static int QuestionThree(int finishNumber) { //Clear the Fibonacci list FibonacciList.Clear(); //Add the first two values in the Fibonacci seequence FibonacciList.Add(0); FibonacciList.Add(1); //initiate twom integer values int highest = 0; int sumeven = 0; //loop through while the maximum Fibonacci number is less than the value selected for 'finish number' while (highest < finishNumber) { FibonacciList.Add(highest); highest = FibonacciList[FibonacciList.Count - 1] + FibonacciList[FibonacciList.Count - 2]; } //Work out whether the number is even or not, if so add it to the sum for (int i = 0; i < FibonacciList.Count; i++) { if (FibonacciList[i] % 2 == 0) { sumeven = sumeven + FibonacciList[i]; } } //Write the sum of even Fibonacci numbers Console.WriteLine("--- Sum the even Fibonacci numbers less than " + finishNumber + " ---"); Console.WriteLine(sumeven); return sumeven; } } }