【发布时间】:2015-10-26 19:54:35
【问题描述】:
我目前正在(作为学校项目)开发用于会话系统的 WebAPI。它基本上是两个用户之间的邮箱。
添加新消息时,我想检查两个用户是否已经相互交谈。目前所有内容都作为变量存储在内存中(仅供学校使用,以后可以改进)。
我的模型是这样的:
public class Conversation
{
public int Id { get; set; }
public int[] Users { get; set; }
public DateTime Created { get; set; }
public DateTime Updated { get; set; }
public List<Message> Messages { get; set; }
public static List<Conversation> listeConversation = new List<Conversation>
{
new Conversation {
Id = 1, Users = new int[2] {1, 2}, Messages = new List<Message> {
new Message { Id = 1, UserId = 1, Content = "Bonjour", Created = DateTime.Now},
new Message { Id = 2, UserId = 2, Content = "Comment ça va ?", Created = DateTime.Now},
new Message { Id = 3, UserId = 1, Content = "Très bien et toi ?", Created = DateTime.
}
};
}
在我的方法中,我正在接收发送者和接收者 ID。我想创建一个新方法来检查对话列表是否已经包含这两个用户之间的对话,但我真的不知道该怎么做。
我想我必须使用 Contains,但我真的不知道如何将它与数组一起使用。我试过这样的事情:
private Conversation getConversationFromUsers(int[] users)
{
Conversation.listeConversation.Where(c => c.Users.Contains(users));
}
但它不起作用。
【问题讨论】:
-
您想要仅在这些用户之间进行任何对话,还是需要这两个用户参与的任何对话?