Проходя Tuple для просмотра, просматривайте результаты

1

Я передаю кортеж на мой частичный вид из моего actionresult. Мне не нужно создавать класс, потому что он будет содержать менее половины десятка элементов и будет использоваться только один раз в приложении. Раньше я никогда не слышал о Tuple, и мне казалось, что это лучший способ. Проблема в том, как получить результаты, когда я не знаю, насколько большой будет Tuple?

Мой код возвращает ошибку: "оператор foreach не может работать с переменными типа" объект ", потому что" объект "не содержит общедоступного определения для" GetEnumerator ""

Многие сайты объясняют эту ошибку "если вы хотите использовать foreach в Tuple, тогда вы можете наследовать класс Tuple и реализовать дочерний класс с интерфейсом IEnumerable и предоставить определение для метода GetEnumerator". к которому я сижу и царапаю голову, как будто я читаю Урду.

Каким будет лучший способ реорганизовать это, чтобы передать список списков? Thanx заранее для ваших предложений.

Мой Actionresult:

   List<Tuple<string, string>> mylist = new List<Tuple<string, string>>();


        string[] bits = stringvar.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
        foreach (string bit in bits)
        {
    ... //some string manipulation here

            mylist.Add(new Tuple<string, string>(string1, string2 ));                
        }

        ViewData["FolderPath"] = mylist;

        return PartialView("MyPartialView");

и мой Partialview:

  <% if (ViewData["FolderPath"] != null) {

   var mystuff = ViewData["FolderPath"];

   foreach (Tuple<string, string> item in mystuff)
   {
       string one = item.Item1;
       string two = item.Item2;  

    ... // do something with my strings       

   }
}             

   %>
Теги:
arraylist
tuples
asp.net-mvc-3

1 ответ

1
Лучший ответ

Где вы пишете:

var mystuff = ViewData["FolderPath"];

Ты должен попытаться:

var mystuff = (List<Tuple<string, string>>)ViewData["FolderPath"];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню