web-dev-qa-db-fra.com

l'instruction foreach ne peut pas fonctionner sur des variables de type définition publique pour 'getenumerator'

Task03Entities.Entites entities = new Task03Entities.Entites();

// Creat a object for my entites class
Task03BAL.BAL bal = new Task03BAL.BAL();

// creat a object of BAL to call Get Data Method
List<Task03Entities.Entites> entitiesList = new List<Task03Entities.Entites>();

// make a list of class Entities
entitiesList = bal.GetData(entities);

// store data in list
ViewState.Add("Products", entitiesList.ToArray());

// use view state to store entitieslist
Task03Entities.Entites[] entitiesArray =(Task03Entities.Entites[])ViewState["Products"];
List<Task03Entities.Entites> ViewStateList =new List<Task03Entities.Entites(entitiesArray);

// so now ViewStateList contain entitieslist data
// Now the Problem which i am facing is 
if (Request.QueryString["count"] != null) // this is okay
{
  listCount =Convert.ToInt32(Request.QueryString["count"]);   
}

for (int i = (listCount * 2)-2; i < listCount * 2; i++)
{
  Task03Entities.Entites newViewStateList = new Task03Entities.Entites();
  newViewStateList = ViewStateList[i];

// view state contain a list of data here on above line m trying to acess single data
%>
<table>
<%                  

foreach (Task03Entities.Entites item in newViewStateList)
// on above line i am getting following error message 

Message d'erreur du compilateur: CS1579: L'instruction foreach ne peut pas fonctionner. variables de type 'Task03Entities.Entites' car 'Task03Entities.Entites' ne contient pas de définition publique pour 'GetEnumerator'

6

C'est simple: Task03Entities.Entites n'est pas une collection. 

Vous initialisez un objet ici:

Task03Entities.Entites newViewStateList = new Task03Entities.Entites();

Et essayez ensuite de le parcourir comme s'il s'agissait d'une collection:

foreach (Task03Entities.Entites item in newViewStateList)
{

}

Je suppose que vous voulez quelque chose comme:

List<Task03Entities.Entites> newViewStateList = new List<Task03Entities.Entites>();

foreach (Task03Entities.Entites item in newViewStateList)
{
    //code...
}
11
DGibbs

Considérant le message, votre type Task03Entities.Entites n'est pas un type de collection et/ou non énumérable. Donc, pour pouvoir utiliser foreach dessus, vous devez le rendre tel.

Par exemple, vous pouvez consulter: Comment rendre une classe Visual C # utilisable dans une instruction foreach

1
Tigran

ajoutez simplement @ model IEnumerableint la première ligne au lieu de votre ligne @model habituelle

0
Tamizh venthan