【发布时间】:2020-02-27 19:56:21
【问题描述】:
我有一个这种格式的数据列表 -
User Role Code
John admin 101
John admin 101
John admin 100
Smith superadmin 150
Smith superadmin 120
Smith superadmin 130
Smith superadmin 140
Smith superadmin 160
John review 180
John review 190
John review 200
我想根据普通用户这样折叠这个 -
User Role Code
John admin 100,101
Smith superadmin 120,130,140,150,160
John review 180,190,200
我试过了-
result = userRoles.GroupBy(l => l.User).Select(u => new UserRole()
{
Code = string.Join(", ", userRoles.Where(d => d.User == u.Key)
.Select(d => d.Code)
.ToArray()),
User = u.Key,
}).ToList();
我已经达到了可以使用上述代码的格式显示用户和代码的地步,只是想弄清楚如何适应角色,任何帮助将不胜感激。
var userRoles = new[]
{
new UserRole() { User = "John", Role = "admin", Code = "101" },
new UserRole() { User = "John", Role = "admin", Code = "101" },
new UserRole() { User = "John", Role = "admin", Code = "100" },
new UserRole() { User = "Smith", Role = "superadmin", Code = "150" },
new UserRole() { User = "Smith", Role = "superadmin", Code = "120" },
new UserRole() { User = "Smith", Role = "superadmin", Code = "130" },
new UserRole() { User = "Smith", Role = "superadmin", Code = "140" },
new UserRole() { User = "Smith", Role = "superadmin", Code = "160" },
new UserRole() { User = "John", Role = "review", Code = "180" },
new UserRole() { User = "John", Role = "review", Code = "190" },
new UserRole() { User = "John", Role = "review", Code = "200" },
};
public class UserRole
{
public string User;
public string Role;
public string Code;
}
【问题讨论】:
-
对不起,我不明白你想得到什么,你需要按用户和角色分组吗?
-
我能够以我想要的格式获取用户和代码,只是无法弄清楚如何获取角色
-
@learner999 - 当一个答案有 8 个赞而另一个 0 时,您可能需要考虑为什么会这样。