Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对列表中的对象进行排序和分配_C#_List_Linq_Attributes_Linq Group - Fatal编程技术网

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; }
    }