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
пусты.
user
экземпляров, которые имеют общийgroupID
. Если вы хотите увидеть значение ключа группы, вы можете выбрать ключ любого члена группы. Если вы хотите увидеть, сколько элементов находится в какой-либо конкретной группе, вы можете выполнить итерацию группы и подсчитать их, или, что предпочтительнее, вы можете использовать метод LINQCount
, который делает именно это. Я оставлю вам выполнение этих шагов в качестве упражнения, но вы на правильном пути! - person Preston Guillot   schedule 23.05.2014