不能使用 linq 和 c# 将项目范围添加到 var



我有以下用户列表:

var roles = userRoleRepository.Get(q => q.user_id.Equals(username, StringComparison.InvariantCultureIgnoreCase));

roles有两个属性,一个是(ID,Name(,拿到列表后怎么给这个添加集合?既然角色,没有addorg,我想add("124","Jack"(

在我看来,UserRoleRepository是你(公司(自己的类之一的对象。此类具有具有一些返回值的Get函数。

唉,你忘了告诉我们返回的类型。从代码片段中,我假设返回的对象不是一系列对象,而是单个对象,可能是您称之为UserRole的对象。返回的UserRoleuserRoleRepository中具有等于某个字符串userNameuser_id的。

由于Get函数只返回一个UserRole因此将集合添加到此对象不是一个有意义的操作,除非此UserRole具有添加集合的函数。但正如您告诉我们的那样:您的UserRole没有这样的功能。

或者你的描述有点草率,你想在UserRoles集合中添加一些UserRoles,这将是你的Get函数的返回?再次唉:您没有给我们定义Get函数的返回值。

如果Get返回一个UserRole,并且您希望将此提取UserRole与您自己的UserRoles序列组合在一起,请执行以下操作:

UserRole fetchedUserRole = userRoleRepository.Get(...);
List<UserRole> userRoles = new List<UserRole>();
userRoles.Add(fetchedUserRole);
return userRoles.Concat(myOwnUserRoleCollection);

另一方面,如果Get返回一个USerRole序列,代码会更简单:

IEnumerable<UserRole> fetchedUserRoles = userRoleRepository.Get(...);
return fetchedUserRoles.Concat(myOwnUserRoleCollection);

最新更新