Hola de nuevo llegue a resolver la cuestion de la siguiente manera
 
//se detecta la cantidad de espacios ingresados y luego este valor se le asigna a una variable
llamada numerodeespacios
//tambien se almacena en un array las palabras separadas por espacios mediante el split
//luego se hace un for que terminara cuando el numerodeespacios sea igual a i
//dentro del for CLAVE devolvera la primera palabara que se ingrese
//dentro del for CLAVE2 guardara la primera letra de CLAVE
//dentro del for CLAVE2 tambien guardara la ultima letra de CLAVE
//el for hara lo mismo para cada palabra que se guardo en el array :D    
Código C:
Ver originalString PALABRA, CLAVE = "";
 
            PALABRA = txtPalabra.Text.Trim();
            String palabra = txtPalabra.Text;
 
            int numerodeespacios = 0;
            char[] texto = txtPalabra.Text.ToCharArray();
 
            numerodeespacios = CantidadEspacios(texto, 0, 0);
 
            string CLAVE2 = "";
            string valor = txtPalabra.Text;
 
            string[] separados;
 
            separados = valor.Split(" ".ToCharArray());
 
            int i = 0;
            
            for (; i <= numerodeespacios; i++)
            {
 
                CLAVE = separados[i];
 
                CLAVE2 = CLAVE2 + CLAVE.Substring(0, 1);
                CLAVE2 = CLAVE2 + CLAVE.Substring(CLAVE.Length - 1, 1);
 
            }
            txtClave.Text = "" + CLAVE2;
            
            }
 
       
 
        static int CantidadEspacios(char[] texto, int ini, int cont)
        {
            if (ini == texto.Length)
                return cont;
            else if (texto[ini] == ' ' || texto[ini] == '\t')
                cont++;
            return CantidadEspacios(texto, ++ini, cont);
        }