0
我有兩個類 -分組在一個單獨的記錄多個記錄
public class MyUser
{
public string UserID{ get; set; }
public string UserFirstName{ get; set; }
public string UserLastName{ get; set; }
public string UserEmail{ get; set; }
public string RoleId{ get; set; }
public string RoleName { get; set; }
public string GroupId{ get; set; }
public string GroupName{ get; set; }
}
public class FinalUsers
{
public string UserID{ get; set; }
public string UserFirstName{ get; set; }
public string UserLastName{ get; set; }
public string UserEmail{ get; set; }
public List<string> RoleId{ get; set; }
public List<string> RoleName { get; set; }
public List<string> GroupId{ get; set; }
public List<string> GroupName{ get; set; }
}
我得到記錄MYUSER作爲.NET列表 -
|UserId | UserFirstName | UserLastName | UserEmail | UserRoleId | UserRoleName | UserGroupId | UserGroupName
| 1 | Anil | Surname1 | [email protected] | R123 | Read | NULL | NULL
| 1 | Anil | Surname1 | [email protected] | R234 | Write | NULL | NULL
| 1 | Anil | Surname1 | [email protected] | null | null | G1 | Group1
| 1 | Anil | Surname1 | [email protected] | null | null | G2 | Group2
現在我想將其轉換成FinalUsers
|UserId | UserFirstName | UserLastName | UserEmail | UserRoleId | UserRoleName | UserGroupId | UserGroupName
| 1 | Anil | Surname1 | [email protected] | R123,R234 | Read,Write | G1,G2 | Group1,Group2
不知道如何在linq中分組 -
from p in myUserList
group p by new
{
p.RoleId,
p.RoleName,
p.GroupId,
p.GroupName,
} into gcs
select new FinalUsers()
{
UserId = gcs.FirstOrDefault().UserId,
UserFirstName = gcs.FirstOrDefault().UserFirstName ,
UserLastName = gcs.FirstOrDefault().UserLastName ,
UserEmail = gcs.FirstOrDefault().UserEmail ,
RoleId = gcs.RoleId,
RoleName = gcs.RoleName,
GroupId= gcs.GroupId,
GroupName= gcs.GroupName
}
我確定上述查詢不正確,請您幫我解決。或者提出另一種實現結果的方式。
它未能在compilte時間 - 錯誤\t CS1061 \t「IGrouping <串,MYUSER>」不包含關於「角色ID」和沒有擴展方法的定義「角色ID」接受型的第一參數「IGrouping <串,MYUSER >'可以找到(你是否缺少使用指令或程序集引用?) –
它在分配gcs.RoleId,gcs.RoleName,gcs.GroupId,gcs.GroupName時拋出錯誤 –
對不起。檢查我的新更新。 –