Foreach cannot work with public type definition variables for '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 

Compiler error message: CS1579: foreach statement variables like “Task03Entities.Entites” cannot work because “Task03Entities.Entites” does not contain a public definition for 'GetEnumerator'

+6
source share
3 answers

It is simple: Task03Entities.Entites not a collection.

You initialize the object here:

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

And then try to iterate over it as if it were a collection:

 foreach (Task03Entities.Entites item in newViewStateList) { } 

I suspect you want something like:

 List<Task03Entities.Entites> newViewStateList = new List<Task03Entities.Entites>(); foreach (Task03Entities.Entites item in newViewStateList) { //code... } 
+11
source

Given the message, your type Task03Entities.Entites not a collection type and / or not enumerated. Therefore, in order to be able to use foreach on it, you must make it this way.

For example, you can see: How to make a Visual C # class usable in a foreach statement

+1
source

just add @model IEnumerable int in the first line instead of your regular @model line

0
source

Source: https://habr.com/ru/post/952575/


All Articles