C# C linq选择一些实体
我有一个答案实体列表,列表大小为50-2000项-实体的属性比这里显示的要多得多 我想要一个linq查询来为那些还没有得到正确答案的人选择所有的实体 因此,我的实体输出列表将从下表中排除fred和harry的所有实体,因为它们都有一个正确的答案,并且包括bob和bill的答案的所有实体。我必须选择isCorrect,而不是答案本身,因为答案在呈现给用户时会被置乱,我需要完整的实体作为嗯C# C linq选择一些实体,c#,linq,C#,Linq,我有一个答案实体列表,列表大小为50-2000项-实体的属性比这里显示的要多得多 我想要一个linq查询来为那些还没有得到正确答案的人选择所有的实体 因此,我的实体输出列表将从下表中排除fred和harry的所有实体,因为它们都有一个正确的答案,并且包括bob和bill的答案的所有实体。我必须选择isCorrect,而不是答案本身,因为答案在呈现给用户时会被置乱,我需要完整的实体作为嗯 - username | answer | isCorrect | ..... - fred | a
- username | answer | isCorrect | .....
- fred | a | false exclude as he has 1 correct
- fred | d | false exclude as he has 1 correct
- fred | b | false exclude as he has 1 correct
- fred | a | true exclude as he has 1 correct
+ bob | a | false need this entity
+ bob | b | false need this entity
+ bill | a | false need this entity
+ bill | b | false need this entity
- harry | a | false exclude as he has 1 correct
- harry | b | true exclude as he has 1 correct
- harry | c | false exclude as he has 1 correct
我可以得到一个没有正确答案的用户列表
var usersWithNoCorrectAnswers = entities
.GroupBy(a => a.UserName)
.Where(g => g.Any(x => !x.IsCorrect))
.Select(g => g.Key)
.ToList();
但我不知道如何得到没有正确答案的实体列表
感谢要获取所有答案错误的用户的所有实体,您可以根据用户名分组并筛选出正确答案的用户。然后只需为组选择实体并展平结果
var results = entities.GroupBy(a => a.UserName(
.Where(g => !g.Any(a => a.IsCorrect))
.SelectMany(g => g)
.ToList();
要获得所有答案都错误的用户的所有实体,您可以根据用户名分组并筛选出所有正确答案的用户。然后只需为组选择实体并展平结果
var results = entities.GroupBy(a => a.UserName(
.Where(g => !g.Any(a => a.IsCorrect))
.SelectMany(g => g)
.ToList();
我想你需要这样的东西:
var results = entities.GroupBy(a => a.UserName(
.Where(g => !g.Any(a => a.IsCorrect))
.SelectMany(g => g.Select(a =>
new {
username = a.username,
answer = a.answer,
...
}
))
.Distinct()
.ToList();
或
我想你需要这样的东西:
var results = entities.GroupBy(a => a.UserName(
.Where(g => !g.Any(a => a.IsCorrect))
.SelectMany(g => g.Select(a =>
new {
username = a.username,
answer = a.answer,
...
}
))
.Distinct()
.ToList();
或
但我不知道如何得到没有正确答案的实体列表
但我不知道如何得到没有正确答案的实体列表
我已经重新编辑,以使它更清楚,我需要所有的实体和完整的实体,而不仅仅是答案,thanks@user2153050好的,如果我理解您对问题的更改,我已经更新了我的答案,以获取实体,而不仅仅是答案。这起作用了,我注意到其中任何一项工作。其中g=>!g、 Anya=>a.IsCorrect,其中g=>g.Anya=>!a、 IsCorrect@user2153050实际上应该是g=>!g、 Anya=>a.IsCorrect或g=>g.Alla=>!a、 IsCorrect一个不是至少一个正确的用户,另一个是所有用户都不正确。是的,今天进一步的实验揭示了你在这里所说的,谢谢。我已经重新编辑,以使它更清楚我需要所有的实体和完整的实体,而不仅仅是答案, thanks@user2153050好的,如果我理解您对问题的更改,我已经更新了我的答案,以获取实体,而不仅仅是答案。这起作用了,我注意到其中任何一项工作。其中g=>!g、 Anya=>a.IsCorrect,其中g=>g.Anya=>!a、 IsCorrect@user2153050实际上应该是g=>!g、 Anya=>a.IsCorrect或g=>g.Alla=>!a、 IsCorrect一个不是至少有一个正确的用户,另一个是所有用户都不正确。是的,今天的进一步实验揭示了您在这里所说的,谢谢