我正在尝试在我正在使用的项目上创建消息传递功能,为了做到这一点,我在模型中使用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
我试图得到它,以便它按日期命令,所以如果我背靠背发送两条消息但只收到一条它先显示我的两条,然后另一条按正确顺序而不是其他所有。谢谢!
答案 0 :(得分:0)
正如评论中所提到的,您可能希望使用public void SetNoter(int i, double uneNote) {
etudiants[i].setNote(uneNote);
}
订购邮件并避免使用.OrderBy()
,因为您无法保证您将始终成对获取发件人 - 收件人。您可以连续发送或接收两条或更多条消息。
您可能不得不以某种方式组合您的列表,并使用某种if语句来确定您的标记。像下面这样的东西可以让你接近你需要的地方。
.Zip()
P.S。这是在Notepad ++中这样做的,所以我的标记可能不正确。