class user
{
public string userID { get; set; }
public string groupID { get; set; }
public int individualCredit { get; set; }
public int groupCredit { get; set; }
}
我有一个像这样的列表
List<user> listUsers = new List<user>();
我想将用户分组为groupID
。
通过添加组中每个成员的groupCredit
并将其除以组成员数来计算individualcredit
。
最后,我想为每个用户分配groupCredit
。
有三到五名成员的团体。
怎么做?
这是我尝试过的。
var groupedUsers = from users in listUsers
where users.groupID != ""
group users by users.groupID into grouphold
select grouphold ;
这是我不知道的。
如何搜索相同的groupID
?在我尝试的内容中,我检查所有项groupID
是否为空。
答案 0 :(得分:0)
虽然我同意Sahil的评论,但这是一个起点...
您可以使用LINQ,如下所示:
List<user> listUsers = new List<user>();
public int groupUsersbyID(int _groupID)
{
var ListOfUsers = (from g in listUsers where g.groupID == _groupID select g).ToList();
var count = ListOfUsers.Count();
var totalCreditforGroup = 0;
var GroupCredit = 0;
foreach (var indidCredit in ListOfUsers)
{
totalCreditforGroup = totalCreditforGroup + indidCredit.individualCredit;
GroupCredit = totalCreditforGroup / count;
}
return GroupCredit;
}
public int returnGroupID(int userId)
{
var GroupIDforUser = (from i in listUsers where i.userID == userId select i.groupID).FirstOrDefault();
return GroupIDforUser;
}
public class user
{
public int userID { get; set; }
public int groupID { get; set; }
public int individualCredit { get; set; }
public int groupCredit { get; set; }
}