C# 如何在Linq中实现嵌套for循环?
如何将以下嵌套for循环转换为linq:C# 如何在Linq中实现嵌套for循环?,c#,asp.net,linq,C#,Asp.net,Linq,如何将以下嵌套for循环转换为linq: public string MX() { string[] names = { "ali", "reza", "john" }; string[] roles = { "admin", "user" }; List<string> result = new List<string>(); foreach (string username in names) { foreach
public string MX()
{
string[] names = { "ali", "reza", "john" };
string[] roles = { "admin", "user" };
List<string> result = new List<string>();
foreach (string username in names)
{
foreach (string rolename in roles)
{
if (IsUserInRole(username, rolename))
{
result.Add(username + " : " + rolename);
}
}
}
return string.Join("<br>" ,result);
}
public bool IsUserInRole(string username, string rolename)
{
//code
return true;
}
公共字符串MX()
{
string[]name={“ali”、“reza”、“john”};
字符串[]角色={“管理员”,“用户”};
列表结果=新列表();
foreach(名称中的字符串用户名)
{
foreach(角色中的字符串rolename)
{
if(IsUserInRole(用户名,rolename))
{
结果.添加(用户名+”:“+rolename);
}
}
}
返回字符串。Join(“
”,result);
}
public bool IsUserInRole(字符串用户名、字符串角色名)
{
//代码
返回true;
}
在我的头顶上(未测试):
var result=string.Join(
),name.SelectMany(n=>
角色。其中(r=>IsUserInRole(n,r))。选择(r=>n+“:”+r)):
查看相关帖子:
您可以通过以下方式实现这一点:
string result = string.Join("<br>",
from username in names
from rolename in roles
where IsUserInRole(username, rolename)
select username + ":" + rolename);
string result=string.Join(“
”,
从名称中的用户名
来自角色中的rolename
其中IsUserInRole(用户名,rolename)
选择用户名+“:”+rolename);
string result = string.Join("<br>",
from username in names
from rolename in roles
where IsUserInRole(username, rolename)
select username + ":" + rolename);