我想根據我提供的物件 ID 獲取組名串列。例如,如果 id 是 5458409c-013f-40d6-8352-522654ae1422,那么我想獲取該 id 的組名,例如可以是“Marketing”。但是,我不斷回傳錯誤的組。
這是我到目前為止的實作:
List<AccessGroup> accessGroups = new List<AccessGroup>();
try
{
foreach(var id in group_ids)
{
var page = await graph_client.Groups[id].Members.Request().GetAsync();
string group_name = "";
group_name = page.OfType<Group>().Select(x => x.DisplayName).FirstOrDefault();
while (page.NextPageRequest != null)
{
page = await page.NextPageRequest.GetAsync();
group_name = page.OfType<Group>().Select(x => x.DisplayName).FirstOrDefault();
}
accessGroups.Add(new AccessGroup { Id = id, Name = group_name });
}
}
catch (Exception ex)
{
Logger.Warning(ex.Message);
Logger.Warning("Error getting group name from azure security groups");
throw;
}
uj5u.com熱心網友回復:
您好,感謝您的提問。看起來您想存盤每個頁面的第一個成員顯示名稱,但accessGroups.Add(new AccessGroup { Id = id, Name = group_name });只被呼叫一次。您應該將其添加到while塊中。
如果您只想獲取第一個組成員的 displayName,那么您可以嘗試以下操作:
async Task GetGroupFirstMemberDisplayName()
{
var members = (await client.Groups.Request().Select(g => g.Id).Expand("members($select=displayName)").GetAsync())
.Select(g => new { GroupId = g.Id, FirstMemberDisplayName = g.Members.OfType<Group>().FirstOrDefault()?.DisplayName });
foreach (var item in members)
{
Console.WriteLine($"Group {item.GroupId} first member display name: {item?.FirstMemberDisplayName ?? ""}");
}
}
如果您只想獲取所有組的 displayName,那么您可以嘗試以下操作:
async Task GetGroupDisplayNames()
{
var names = (await client.Groups.Request().Select(g => g.DisplayName).GetAsync())
.Select(g => g.DisplayName);
Console.WriteLine(string.Join(", ", names));
}
希望有幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/509941.html
上一篇:為什么小數精度文化依賴?
