c# - MS Graph - LINQ 查询返回不正确的结果

标签 c# linq microsoft-graph-api microsoft-graph-sdks

问题:以下返回一个不正确的值。我可能缺少什么以及如何纠正?该问题似乎纯粹与 LINQ 的使用有关,而不是 MS Graph。

备注:虽然这是一个更简单的情况,只有两种类型的值(Azure AD 和 MS Account),但在实际场景中,情况将不止两种。因此,我们不能只对简单的情况使用简单的三元运算符(例如 condition ? consequent : Alternative) - 相反,它必须嵌入多个情况。我将遇到两种以上的情况,如以下 LINQ 查询所示。

LINQ:

dgrdUsers 是如下所示的 DataGrid 的名称。

Microsoft.Graph.IGraphServiceUsersCollectionPage users = await graphClient.Users.Request()
    .Select("displayName, userPrincipalName, userType")
    .GetAsync();

List<User> lstUsers = (List<User>)users.CurrentPage.ToList();

dgrdUsers.ItemsSource = (
            from User in lstUsers
            select new
            {
                DisplayName = User.DisplayName,
                UserPrincipalName = User.UserPrincipalName,
                UserType = User.UserType,
                Source =
                (
                    (User.UserType == "Member" && User.UserPrincipalName.Contains("#Ext#") == false) ? "Azure Active Directory" :
                    (User.UserType == "Member" && User.UserPrincipalName.Contains("#Ext#")) ? "Microsoft Account" :
                    (User.UserType == "Guest" && User.ExternalUserState == "Accepted") ? "External Azure Active Directory" :
                    (User.UserType == "Guest" && User.ExternalUserState == "PendingAcceptance") ? "Invited user" : "Unknown"
                )
            }
        ).ToList();

引用:有类似的 LINQ 示例,例如 thisthis

结果数据网格:

第二行中的Source列值应为Microsoft Account

enter image description here

最佳答案

正如评论中所说:是字母大小写错误导致的,代码中使用#Ext#,但“用户名”却是大写的#EXT#

所以只需将代码中的#Ext#更改为#EXT#即可。

关于c# - MS Graph - LINQ 查询返回不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62926660/

相关文章:

c# - 合并列表中的重复字符串并求和

microsoft-graph-api - 如何从 Microsoft Graph 获取组织目录列表

microsoft-graph-api - 请求 Microsoft Graph/users/me/sendMail 返回 404

azure - 如何使用控制台应用程序通过 Microsoft Graph API 调用 Microsoft Teams OnlineMeeting 端点?

c# - 在循环的每次迭代中做不同的事情 c#

C# Reg_Binary 和 BATCH

c# - 在 C# 中动态评估字符串条件

c# - 需要高效稳定的 PriorityQueue 实现

c# - 使用 WPF/C# : how to define a threshold to tell apart clicks from panning 的触摸输入

C# 字符串数组 orderBy 重音字符问题