2016-11-22 36 views
-5

新手的前这里,我有一个列表移动在列表中的对象添加到列表

@Model.Cleaners 

如果在列表

bool something = true 

我想这个项目动,现在是去当在列表中的第一项(所以它首先会显示出来。) 我想这

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

但我正在逐渐错误无法将类型'void'转换为对象'这是什么意思?

+0

请说明您的具体问题或添加其他详细信息,以确切地突出您所需要的。正如目前所写,很难确切地说出你在问什么。请参阅[如何问](http://stackoverflow.com/help/how-to-ask)页面帮助澄清这个问题 – Marusyk

+1

我99.9%肯定你会得到答案,如果你谷歌'不能转换类型虚空到对象C#' – dfundako

+0

你可以用'OrderBy'实现你想要的,而不是实际洗牌你的项目,看看这个http://www.vitoshacademy.com/c-linq-where-orderby-select/ – KMoussa

回答

1

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

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

这样做的好处是您的订单有很大的灵活性。你可以给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)) 

希望这有助于:)!

+0

爱它!谢谢! – Newbie