相当于C#的“列表”

In C# I used to have a List which can be referenced to elements by index and had a method to add elements. In Go, I am having difficulty in having such data type. If I use slice I cannot know its size. In the list I cannot access elements directly. What would be perfect data type for my case: I want to have a list and when needed I need to add item and when needed I should be able select single item directly. Shall I implement indexing to List ? Or is there any equivalent data type?

Just use a slice. You can get the length, add items and retrieve items using an index:

array := []int{1,2,3}
fmt.Println("Length: ", len(array))
array = append(array, 4)
fmt.Println("Item at last index", array[3])