I made a little changes to your code, and came up with this fiddle.
https://dotnetfiddle.net/ylc2Dx[
^]
The code was now,
public static List<string> ABC() {
List<string> list = new List<string>();
list.Add("First value");
list.Add("Second value");
list.Add("Third value");
return list;
}
List<string> newList = ABC();
Console.WriteLine(newList.ToString());
This now ensures that your new object will be created, three values would be added, then the list would be returned, and by the way, why are you returning an object, in this way, whereas it will be easy to write it this way
List<string> list = new List<string>();
Any specific reason behind this brother?