【问题标题】:looping through a List<string[]>遍历 List<string[]>
【发布时间】:2017-09-05 23:49:25
【问题描述】:

我正在尝试获取数组列表中带有索引的每个项目的值,我使用此代码完成了此操作,但循环完成后没有显示值。

foreach (var item in (List<string[]>)TempData["verification_errors"])
{
    <p>@item[0].ToString() + @item[2].ToString()</p>
}

这是List&lt;string[]&gt;

List<string[]> Data_verification_errors = new List<string[]>();
string[] Cust_Surname = new string[] { "CustomerSurname", reservation_details.CustomerSurname, "Customer name must have at least 2 characters" };

Data_verification_errors.Add(Cust_Surname);

【问题讨论】:

  • 什么 TemData?如果它真的是ArrayList,则转换为List&lt;string[]&gt;应该失败,你会得到InvalidCastException
  • 你不需要在循环之前先将你的 TempData 反序列化为一个列表对象吗?
  • 我想 OP 表示数组列表,List&lt;string[]&gt;。然而,这不是ArrayList,所以你应该澄清你的问题。
  • @HimBromBeere 临时数据我将数组列表存储在其中,以发送视图
  • 避免使用术语ArrayList,因为这是(旧).NET 类的名称,因此会导致混淆。您可能的意思是数组列表

标签: c# asp.net asp.net-mvc arraylist asp.net-core


【解决方案1】:

在循环内更改为:

<p>@(item[0].ToString() + item[2].ToString())</p>

代替:

<p>@item[0].ToString() + @item[2].ToString()</p>

【讨论】:

  • 我有问题 &lt;p&gt;@(item[0].ToString() + item[2].ToString())&lt;/p&gt; 中的这个文本或值没有出现在浏览器上我不知道原因
  • 他们有价值观吗?
  • 你检查过源代码是否存在吗?它可能在 display:none 类中,或者您可能错过了结束标记或其他东西
  • 当我在 for-each 循环中设置这个 &lt;p&gt;test&lt;/p&gt; 时也不会出现
猜你喜欢
  • 2013-10-26
  • 2013-08-11
  • 2012-09-04
  • 2017-03-15
  • 2013-05-17
  • 2012-06-16
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
相关资源
最近更新 更多