C# 对列表中的对象进行排序和分配
我有一张这样的清单C# 对列表中的对象进行排序和分配,c#,list,linq,attributes,linq-group,C#,List,Linq,Attributes,Linq Group,我有一张这样的清单 class user { public string userID { get; set; } public string groupID { get; set; } public int individualCredit { get; set; } public int groupCredit { get; set; } } 这是我不知道的 如何搜索相同的groupID?在我尝试的内容中,我检查所有项目groupID为空 虽然我同意
class user
{
public string userID { get; set; }
public string groupID { get; set; }
public int individualCredit { get; set; }
public int groupCredit { get; set; }
}
这是我不知道的
如何搜索相同的
groupID
?在我尝试的内容中,我检查所有项目groupID
为空 虽然我同意萨希尔的评论,但这里有一个起点
您可以使用LINQ,如下所示:
var groupedUsers = from users in listUsers
where users.groupID != ""
group users by users.groupID into grouphold
select grouphold ;
List listUsers=new List();
公共int-groupUsersbyID(int\u-groupID)
{
var ListOfUsers=(来自listUsers中的g,其中g.groupID==_groupID选择g);
var count=ListOfUsers.count();
var totalCreditforGroup=0;
var-GroupCredit=0;
foreach(列表用户中的var indidCredit)
{
totalCreditforGroup=totalCreditforGroup+indidCredit.individualCredit;
GroupCredit=组/计数的总信用度;
}
返回集团信用;
}
public int returnGroupID(int userId)
{
var GroupIDforUser=(来自listUsers中的i,其中i.userID==userID选择i.groupID);
返回GroupIDforUser;
}
公共类用户
{
public int userID{get;set;}
public int groupID{get;set;}
public int individualCredit{get;set;}
public int groupCredit{get;set;}
}
“如何做到这一点?”-只需稍加研究和努力!尝试一下,当你遇到一些具体的问题时,再来看看。在你尝试之前不要问。闻起来像是家庭作业-表现出一些努力,然后回来。@Sahil感谢你发布你的尝试。这看起来是个好的开始!但是,如果groupID为空,则表示数据本身不好。也许可以看看这些项目的填充位置,看看为什么不正确。@BradleyDotNET这里我搜索了groupID值,但我想对匹配的groupID进行分组,并获取组成员计数。我不知道。@Sahil,那么groupid可以吗?我们可以帮助计数:)我需要在按钮中插入功能。这是一个非常复杂的场景。我听起来可能很愚蠢。但是我必须把这些编码放在class.cs文件中吗?或者在我声明我的列表的地方公开主窗体?您可以调用按钮事件中的函数,假设您的项目是经典asp或winforms应用程序等。在按钮事件中,您只需调用其中一个函数:returnGroupID(ID)groupUsersbyID(ID)。您需要引用此代码所在的cs文件。“listUsers”是在cs命名空间中全局定义的,因此可以在其中的任何位置调用它进行迭代。
var groupedUsers = from users in listUsers
where users.groupID != ""
group users by users.groupID into grouphold
select grouphold ;
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; }
}