将列表中的对象移动到列表的前面

时间:2016-11-22 20:53:40

标签: c#

新手在这里,我有一个清单

 @Model.Cleaners

如果通过列表

bool something = true 

我希望此项目移动,现在是列表中的第一项(因此它将首先显示。) 我试过这个

 @foreach (var c in Model.Cleaners)
                {
                    var item = c;
                    @Model.Cleaners.Remove(c);
                    @Model.Cleaners.Insert(0,item);
                 }

但是我收到错误无法将类型'void'转换为对象'这是什么意思?

1 个答案:

答案 0 :(得分:1)

我不知道是否有更简单的方法可以做到这一点,但在过去遇到这个问题时,我做了以下事情。

我在数据库表中添加了一个可以为空的int,然后我做了一个foreach循环,根据我想要的任何资格,我给了一个较低的数字。然后我做了命令。

这样做的好处是您的订单具有很大的灵活性。您可以给出3个值0,1和2.

例如

  @foreach (var c in Model.Cleaners)
 {
c.ConfirmationChecker = 1;
foreach (var p in c.TimeConfirmations)
{
    if (condition)
    {
        c.ConfirmationChecker = 0;
    }


}
}

然后你可以按顺序

  @foreach (var c in Model.Cleaners.OrderBy(x => x.ConfirmationChecker))

希望这会有所帮助:)!