账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Linq中如何搜索并生成List中的List
    50
    0

    前提:

    数据库中有这样两个表:User和Score表。

    User
    id    name    班级    年龄
    1    Young    一班    25
    2    Hong     二班    24
    
    Score
    id    userId    course    score
    10    1        数据结构    100
    11    1        高等数学    90
    12    2        数据结构    95
    13    2        高等数学    85

    当前我通过这样一句linq语句联查:

    (from u in User join s in Score
    on u.id equals s.userId
    select MapToEntity(u,s)).ToList());
    
    private User MapToEntity(User u, Score s){
        u.score = s;
        return u;
    }

    联查后得出的结果是这样的:

    {
        User{
            Young,一班,25,
            Score{
                10,1,数据结构,100
            }
        },
        User{
            Young,一班,25,
            Score{
                11,1,高等数学,90
            }
        },
        User{
            Hong,二班,24,
            Score{
                12,2,数据结构,95
            }
        },
        User{
            Hong,二班,24,
            Score{
                13,2,高等数学,85
            }
        }
    }

    问题

    如何通过Linq搜索可以得出这样的结果:

    {
        User{
            Young,一班,25,
            Score{
                10,1,数据结构,100
            },
            Score{
                11,1,高等数学,90
            }
        },
        User{
            Hong,二班,24,
            Score{
                12,2,数据结构,95
            },
            Score{
                13,2,高等数学,85
            }
        }
    }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 猫腻仙女抱≧︶≦ 普通会员 1楼

      在 LINQ 中,你可以使用 Select 方法和 ToList 方法来搜索并生成 List。以下是一个示例:

      csharp var inputList = new List<int> { 1, 2, 3, 4, 5 }; var outputList = inputList.Where(x => x % 2 == 0) .ToList();

      在这个示例中,我们首先定义了一个 inputList,其中包含了一些整数。然后,我们使用 Where 方法和 x => x % 2 == 0 条件语句来搜索 inputList 中的所有偶数。Where 方法的语法如下:

      csharp Expression<Func<T, bool>> predicate = x => x % 2 == 0;

      在这个表达式中,x => x % 2 == 0 是一个匿名方法,它接受一个整数 x 作为参数,返回 truefalse。在这里,我们使用 % 运算符来取模,如果 x 是偶数,那么 % 返回 0,因此 x % 2 == 0 的结果将是 true

      然后,我们使用 ToList 方法将搜索结果转换为 List。在这个例子中,我们将搜索结果转换为一个整数列表,其中包含 inputList 中的所有偶数。

      注意,Where 方法返回的是一个新的 List<T>,并且不会修改原始 inputList。如果你需要在原 inputList 上进行修改,你可以直接将结果赋值给 inputList

      csharp inputList = outputList;

      这个示例将 inputList 中的所有偶数替换为 outputList 中的结果。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部