C# List missing directive even though system.collections.generic is already being used

Pretty much the topic. I am trying to use a list and I have included system.collections.generic but I still get this error: Assets/Scripts/Player/Interaction.cs(71,47): error CS0246: The type or namespace name `List’ could not be found. Are you missing a using directive or an assembly reference?

My code looks like this

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class Interaction : MonoBehaviour {
	#region Field
	private Ray ray; //ray for raycasting for interaction
	private RaycastHit hit; //hit info from the raycasting
	private float rayLength; //length of ray
	private int PMDForceMaxPower; //Max force modifier of PMD
	private float PMDForceCurrentPower;
	private int PMDForceMinPower;
	private float PMDForceChargedPower;
	private int layerMaskObjects = 1<<8; //Designates layer 8 (objects) to be the only one active for interactions
	private int layerMaskItems = 1<<9;
	private Camera cam;
	private Plane[] planes;
	// Use this for initialization
	void Start () {
		cam = Camera.main;
		Screen.showCursor = false; //turning off the cursor
		hit = new RaycastHit(); //Creates the hit
		rayLength = 13.5f; // sets the length of the ray
		PMDForceMaxPower = 250; //Sets the max power for force weapons on PMD
		PMDForceMinPower = 50;
		PMDForceCurrentPower = PMDForceMaxPower;
		PMDForceChargedPower = PMDForceMinPower;
	void Update(){
		#region PMD
		//Recharging the PMD
		if(PMDForceCurrentPower < PMDForceMaxPower){
			PMDForceCurrentPower += Time.deltaTime * 10;
		//if sentence controls if PMD is used
		if(Input.GetKey(KeyCode.E) && PMDForceCurrentPower >= PMDForceMinPower){
			PMDForceChargedPower += Time.deltaTime * 50; //add power to the PMD over time
			//if sentence secures that currentpower does not exceed the max power
			if(PMDForceChargedPower >= PMDForceCurrentPower){
				PMDForceChargedPower = PMDForceCurrentPower;
		}//end getkeydown e
		//if sentence that checks when I release the PMD Key it will shoot out a ray and push whatever is infront
			ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width/2, Screen.height/2, 0)); //Shoots out a ray from the camera
				if(Physics.Raycast(ray, out hit, rayLength, layerMaskObjects)){ //ray only searches in the Object Layer
					hit.collider.rigidbody.AddForce((hit.transform.position + new Vector3(0, 1.0f, 0) - transform.position) * PMDForceChargedPower); //adding force to whatever is infront in the object layer
					PMDForceCurrentPower = PMDForceCurrentPower - PMDForceChargedPower;	//substracting the used power from the pool
					PMDForceChargedPower = PMDForceMinPower; //resetting charged power
				}//end raycasting if
			}//end release key.e
	}// ends update

	void FindGameObjectsWithLayer (int layer){
		GameObject[] goArray = FindObjectsOfType(typeof(GameObject)) as GameObject[];
		List<GameObject> goList = new List();
		for(int i = 0; i < goArray.Length; i++){
			if (goArray*.layer == layer) {*

_ goList.Add(goArray*);_
planes = GeometryUtility.CalculateFrustumPlanes(this.cam);_
foreach(GameObject anObject in goList){_
print (anObject.tag + " has been detected");_
print (“Nothing has been detected”);_
Any help is apprisiated

For some reason, my arrow heads don’t show up. I replaced them with {}

List{GameObject} goList = new List{GameObject}();

List goList = new List();

MSDN documentation

it is solved, I had to make it List goList = new List();
If I just made it List goList = new List(); it still complained O_o … but thanks for the help anyways guys ^^ now it is just to figuring out coding some stuff for NGUI :wink: