c#在一个不同的选择列表中拆分三个项目,以在一个表中显示每个项目(并添加一个链接)

本文关键字:一个 项目 显示 链接 添加 三个 选择 列表 拆分 | 更新日期: 2023-09-27 18:06:03

我有一个模型,items。对于给定的客户,我有一个基于三个字段值的不同列表。接下来,我需要拆分列表(不只是返回列表),以便可以使用Html Action中的一个字段链接到另一个视图(或返回相关结果)。

我可以得到唯一列表。这很好。我得到了期望的列表。

   @foreach (var it in Model.item.Select(y => y.orderno + " " + y.book + " " + y.year).Distinct())
    {        
        { <tr>
                <td width="25%">@Html.DisplayFor(model => it)</td>
                <td></td>
            </tr>
        }
    }

但是我需要拆分项目(在我获得不同的值之后),并且能够使用"orderno"将链接传递到另一个视图。

当我得到不同的列表时,我只得到组(我所要求的)。我不知道该怎么分配。我已经尝试了Split(',')在更多的变化比这个。这对我不起作用(可能是我的错误)。

@foreach (var it in Model.item.Select(y => y.item.orderno + " " + y.item.book + " " + y.item.year).Distinct().ToList())
   {   
   List<string> result = it.Split(',').ToList();
      {
        <tr>
            <td width="25%">@Html.DisplayFor(model => it)</td>
            <td></td>
        </tr>
       }
    }

c#在一个不同的选择列表中拆分三个项目,以在一个表中显示每个项目(并添加一个链接)

split方法接受要拆分列表的字符。在您的示例中,您在逗号字符上进行分割。这里应该被空间分割。

@foreach (var it in Model.item.Select(y => y.item.orderno + " " + y.item.book + " " +      y.item.year).Distinct().ToList())
{   
    List<string> result = it.Split(' ').ToList();
    {
    <tr>
        <td width="25%">@Html.DisplayFor(model => it)</td>
        <td></td>
    </tr>
    }
}

需要用空格而不是逗号分隔。

var result = it.Split();

而且,Split已经返回一个数组,所以ToList调用是多余的

你可以这样做:

@foreach (var it in Model.item.Select(y => y.orderno + "," + y.book + "," + y.year).Distinct())
{
    var result = it.Split(','); // result will be array
}