Impossible de convertir l'objet de type WhereSelectListIterator

J'ai été de tenter de comprendre pourquoi une requête Linq qui renvoie une liste des états des États-unis formaté pour une liste déroulante ne sera pas jeté dans une Liste lorsque le code renvoie à la méthode appelante. L'erreur que je reçois est:

Impossible de convertir l'objet de type 'WhereSelectListIterator'2[StateListing.States,<>f__AnonymousTypea'2[System.String,System.String]]"pour le" type de Système.Les Collections.Génériques.Liste`1[StateListing.Membres]'

L'espace de noms StateListing de l'erreur, est une bibliothèque dll qui dispose d'une classe appelée Etats retour d'un IEnumerable Liste des états indiqués ci-dessous.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace StateListing
{
    public class States 
    {
        public string StateAbbriviation { get; set; }
        public int StateID { get; set; }
        public string StateName { get; set; }
        static int cnt = 0;

        public static IEnumerable<States> GetStates()
        {
            return new List<States>
            {
                new States
                {
                    StateAbbriviation = "AL",
                    StateID=cnt++,   
                    StateName = "Alabama"
                },
                new States
                {
                    StateAbbriviation = "AL",
                    StateID=cnt++,
                    StateName = "Alaska"
                }

                //Continued on with the rest of states

            }.AsQueryable();
        }
    }
}

Dans mon contrôle, je fais un appel à GetStates qui retourne une Liste des États à partir de la bibliothèque de classe ci-dessus.

    [HttpPost]
    public JsonResult GetStateOptions() 
    {
        try
        {
            //Return a list of options for dropdown list
            var states = propertyRepository.GetStates(); 
            return Json(new { Result = "OK", options = states });
        }

Dans la propriété référentiel de la classe, j'ai deux méthodes pour obtenir la StateList à partir de la bibliothèque, et un autre pour le format de la liste des états pour une liste déroulante dans mon point de vue.

    public List<States> GetStateList()
    {
        var items = (from s in States.GetStates()
                    select s).ToList();

        return items;
    }

    List<States> IPropertyRepository.GetStates() 
    {
        try
        {
            List<States> RawStates = GetStateList();
            var stateList = RawStates.Select(c => new { DisplayText = c.StateName,   Value = c.StateID.ToString() });
            return (List<States>)stateList;  //<=== Error 
        }

L'erreur se produit lorsque le code atteint le retour au sein de la GetStates méthode.

Toute aide avec ce casting problème d'expliquer ce que je fais mal serait appréciée.

OriginalL'auteur Shawn | 2013-03-03