0
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>();
  1. ユーザーを同じグループにまとめたいgroupID

  2. groupCreditグループ内の各メンバーの s を加算し、individualcreditそれをグループ メンバーの数で割って計算します。

  3. 最後に、各ユーザーにgroupCredit.

3~5名のグループもあります。

どうやってするか?

これが私が試したことです。

var groupedUsers = from users in listUsers 
                   where users.groupID != "" 
                   group users by users.groupID into grouphold 
                   select grouphold ;

これが私が知らないことです。

同じものを検索する方法はgroupID? 私が試したことでは、すべての項目groupIDが空白であることを確認しています。

4

1 に答える 1

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; }
    }
于 2014-05-23T16:21:12.677 に答える