对列表中的对象进行排序和分配
本文关键字:排序 分配 对象 列表 | 更新日期: 2023-09-27 18:05:03
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
s相加,除以组内成员数最后我想给每个用户分配他们的
groupCredit
。
每组有三到五个人。
怎么做?
这是我试过的。
var groupedUsers = from users in listUsers
where users.groupID != ""
group users by users.groupID into grouphold
select grouphold ;
这是我不知道的。
如何搜索相同的groupID
?在我尝试过的所有项目中,我检查groupID
是空白的。
虽然我同意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; }
}