gpt4 book ai didi

c# - 使用linq查找匹配多个行值的外键

转载 作者:行者123 更新时间:2023-11-30 16:15:44 24 4
gpt4 key购买 nike

我有一个名为 conversation 的表,其中列出了处于同一对话中的用户。例如:

id | conversation | user
1 | 1 | Bob
2 | 1 | Jane
3 | 2 | Tim
4 | 2 | Lily
5 | 2 | Rick

我的列表中有一些这样的用户..

List<string> usernames = new List<string>{"Bob","Jane"};

我现在想检查用户何时想开始与其他用户的对话,他们之前是否与其他用户进行过对话(排他地)。

例如。 Bob 想创建与 Jane 的新对话。(我的用户名列表值中有 Bob 和 Jane,以比较他们之前是否在对话中?)

我们看到他们两个已经在对话了,我想获取属于这两个人的对话 ID。

如果我的列表包含如下数据......

List<string> usernames = new List<string>{"Bob","Jane","Tim"};

这一次我期待之前那 3 个人没有对话。

我想知道没有对话我可以为他们创建一个新的。

我已经用 Linq 尝试过这个,但到目前为止还没有得到任何正确的结果。

预先感谢您的帮助;

最佳答案

您可以按对话 ID 进行分组,并将这些组与您的用户列表相匹配:

var previousConversations = userConversations
.GroupBy(uc => uc.Conversation)
.Where(g => g.OrderBy(uc => uc.user).Select(uc => uc.user)
.SequenceEqual(usernames.Sort()));

关于c# - 使用linq查找匹配多个行值的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19243201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com