获取某些字段的列表

时间:2012-03-20 02:57:26

标签: linq

在摆弄这个问题时,我无法正确理解语法。我只想删除后的UserId列表。

List<int> unselectedHockeyPlayers = allHockeyPlayers.Where(u => hockeyPlayers.Contains(u.UserId)).ToList());

2 个答案:

答案 0 :(得分:4)

您错过了对UserId的投射。

List<int> unselectedHockeyPlayers = allHockeyPlayers
    .Where(u => !hockeyPlayers.Contains(u.UserId))
    .Select(u => u.UserId)
    .ToList()

或者更简洁,

List<int> unselectedHockeyPlayers = allHockeyPlayers
    .Select(u => u.UserId)
    .Except(hockeyPlayers)
    .ToList();

答案 1 :(得分:0)

ToList()必须在最后。

List<int> unselectedHockeyPlayers = allHockeyPlayers.Where(u => hockeyPlayers.Contains(u.UserId))).Select(u => u.UserId).ToList();

编辑:您还必须使用.Select()子句专门选择所需的字段。否则,你会得到一个List