如何使用Tuple.Create按最新条目

时间:2017-03-26 00:40:52

标签: c# asp.net-mvc

我正在尝试在我正在使用的项目上创建消息传递功能,为了做到这一点,我在模型中使用foreach循环,以便引入特定用户的消息发送和特定用户已收到的。我试图使它看起来像一个典型的消息服务,当您键入消息时它会显示您的消息,然后它还会显示您收到的消息,它按时间顺序执行。

我的问题是我无法按时间顺序显示消息。 foreach显示所有消息,但它没有按时间顺序排列。

以下是我的foreach循环:

  @{
     var user = HttpContext.Current.User.Identity.GetUserId();
     var bob = Model.Chat.Where(u => u.AssignToUserId == user).ToList();
     var sam = Model.Chat.Where(u => u.OwnerUserId == user).ToList();
    }

       @foreach (var message in bob.Zip(sam, Tuple.Create))
                                        {

     <div class="direct-chat-msg">
         <div class="direct-chat-info clearfix">
    <  span class="direct-chat-name pull-left">@message.Item1.OwnerUser.DisplayName</span>
    <span class="direct-chat-timestamp pull-right">@message.Item1.Created</span>
  </div>
      <!-- /.direct-chat-info -->
    <div class="direct-chat-text">
        @message.Item1.Body
    </div>
    <!-- /.direct-chat-text -->
    </div>
    <div class="direct-chat-msg right">
       <div class="direct-chat-info clearfix">
           <span class="direct-chat-name pull-right">@message.Item2.OwnerUser.DisplayName</span>
          <span class="direct-chat-timestamp pull-left">@message.Item2.Created</span>
       </div>
         <!-- /.direct-chat-info -->                                               
      <div class="direct-chat-text">
       @message.Item2.Body
      </div>
        <!-- /.direct-chat-text -->
    </div>
   }

这是显示的内容:Chat Message Windwo

我试图得到它,以便它按日期命令,所以如果我背靠背发送两条消息但只收到一条它先显示我的两条,然后另一条按正确顺序而不是其他所有。谢谢!

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,您可能希望使用public void SetNoter(int i, double uneNote) { etudiants[i].setNote(uneNote); } 订购邮件并避免使用.OrderBy(),因为您无法保证您将始终成对获取发件人 - 收件人。您可以连续发送或接收两条或更多条消息。

您可能不得不以某种方式组合您的列表,并使用某种if语句来确定您的标记。像下面这样的东西可以让你接近你需要的地方。

.Zip()

P.S。这是在Notepad ++中这样做的,所以我的标记可能不正确。