C# 如何在Linq中实现嵌套for循环?

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

如何将以下嵌套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 (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);