gpt4 book ai didi

c# - 在linq循环中获取以前的值?

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

我正在尝试将下面的代码转换为速记 linq,但不确定是否可行。使用 Linq 有更优雅的方法吗?出现的复杂情况是它是一个嵌套循环,用于拆分 AllowedRoles 并检查每个角色是否为 IsUserInRole。

   bool allowed = RoleManager.IsUserUnrestricted(userId);
if (!allowed)
{
foreach (var item in element.AllowedRoles.Split(','))
{
if (roleManager.IsUserInRole(userId, item.Trim()))
{
allowed = true;
break;
}
}
}

if (allowed)
{
AddWidget(element.Name);
}

最佳答案

试试这个:

if (RoleManager.IsUserUnrestricted(userId)
|| element.AllowedRoles.Split(',')
.Any(item => roleManager.IsUserInRole(userId, item.Trim()))) {
...
}

想法是使用 LINQ 的 Any 函数在没有循环的情况下找到第一个匹配项。

关于c# - 在linq循环中获取以前的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11822348/

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