打破不同列中的字​​符串列表

时间:2017-01-09 01:22:27

标签: c# linq list listview c#-4.0

我有这样的字符串列表

<tr><td>id:1, col: a, val: 1</tr></td>
<tr><td>id:2, col: b, val: 2</tr></td>
<tr><td>id:3, col: c, val: 3;col: d, val: 4;col: e, val: 5</tr></td>

我正在创建一个表

<table class="table table-bordered table-hover">
   @foreach (var item in (List<string>)TempData["tableList"])
      {
        @Html.Raw(item.ToString())
      }
</table>

我有三列,id, col, val有值。

问题在于,在一些列中重复了由';'分隔的值,并且我想在不同的行中显示这些重复的列。

<tr><td>id:1, col: a, val: 1</tr></td>
<tr><td>id:2, col: b, val: 2</tr></td>
<tr><td>id:3, col: c, val: 3</tr></td>
      <tr><td>col: d, val: 4</tr></td>
      <tr><td>col: e, val: 5</tr></td>

anoyone可以建议我如何打破列表,就像我想表现一样。

任何建议都将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:1)

您必须使用var ar = [ [1,1],[1,2],[2,2],[3,3] ]; var hash = {}; for(var i = 0 ; i < ar.length; i += 1) { hash[ar[i]] = i; } var val = [1,2]; if(hash.hasOwnProperty(val)) { document.write(hash[val]); }

Replace(";", '"</td></tr><tr><td>")

您可以查看.net Fiddle example

答案 1 :(得分:1)

@foreach (var item in (List<string>)TempData["tableList"])
    {
     if (item.Contains(";"))
        {
            foreach (var arrayitem in item.Split(';')) {
                @Html.Raw("<tr><td>"+ arrayitem.ToString().Replace("<tr><td>","").Replace("</td></tr>","")+ "</td></tr>")
            }
        }
        else
        {
            @Html.Raw(item.ToString())
        }
}
Try this and check your <td><tr> should be close and open and close accordingly.And at Controller Side use like this: List<string> tableList = new List<string>();
        tableList.Add("<tr><td>id:1, col: a, val: 1</td></tr>");
        tableList.Add("<tr><td>id:1, col: a, val: 1</td></tr>");
        tableList.Add(" <tr><td> id:3, col: c, val: 3; col: d, val: 4; col: e, val: 5 </td></tr>");
        TempData["tableList"] = tableList;