通过元组查看,循环结果

时间:2014-05-22 09:06:11

标签: c# asp.net-mvc-3 arraylist tuples

我正在通过我的行动结果将一个元组传递给我。我不需要创建一个类,因为它将容纳不到六个项目,并且只能在应用程序中使用一次。我之前从未听说过Tuple,这似乎是最好的方式。问题是当我不知道元组有多大时,我如何检索我的结果?

我的代码返回错误:“ foreach语句无法对'object'类型的变量进行操作,因为'object'不包含'GetEnumerator'的公共定义

许多网站都解释了这个错误“如果你想在Tuple上使用foreach,那么你可以继承Tuple类并使用IEnumerable接口实现子类,并为GetEnumerator方法提供定义。”我坐在那里在这里划伤我的脑袋,好像我在读乌尔都语。

重构这个以传递列表列表的最佳方法是什么? Thanx提前为您的建议。

我的行动结果:

   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");

和我的偏见:

  <% 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       

   }
}             

   %>

1 个答案:

答案 0 :(得分:1)

你写的地方:

var mystuff = ViewData["FolderPath"];

你应该尝试:

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