【问题标题】:How do I use LINQ to combine these two methods?如何使用 LINQ 结合这两种方法?
【发布时间】:2020-08-25 09:34:38
【问题描述】:

我有以下这些方法。哪个是集合列表,哪个不是列表

public List<GithubItem> Build(string input)
{
    var getData = GetGithubRepos(input);
    return System.Text.Json.JsonSerializer.Deserialize<List<GithubItem>>(getData);
}

public GithubUser BuildPerson(string input)
{
    var getData = GetGithubPerson(input);
    return System.Text.Json.JsonSerializer.Deserialize<GithubUser>(getData);
}

现在,我想使用 LINQ 查询来组合这两个对象,并从两者中只选择我需要的。

public List<GithubCustomApi> requestAPi(string input)
{
    List<GithubItem> repo = Build(input);
    GithubUser user = BuildPerson(input);

    /////////////////////////////////////
    //I want something like this below//

    var stringQuery = SELECT repo.*, user.* from repo  where repo.owner.id = user.id
    var linqQuery = from c in stringQuery select new GithubCustomApi() { fullname = c.full_name, email = c.emial ...}

    /////////////////////////////////////
    return linqQuery;
}

我想要这样的东西,我可以将两者结合起来,然后填充与我在课堂上的数据相匹配的数据GithubCustomApi()。有人可以帮忙吗?

谢谢

【问题讨论】:

  • 不完全确定这是否是您想要的,因为这个问题对我来说不是那么清楚。您是否正在寻找:repo.Where(r =&gt; r.owner.id == user.id).Select(r =&gt; new GitHubCustomApi { fullname = user.full_name, url = r.url }).ToList();

标签: c# asp.net-mvc list linq


【解决方案1】:

你可以这样做:

public List<GithubCustomApi> requestAPi(string input)
{
    List<GithubItem> repo = Build(input);
    GithubUser user = BuildPerson(input);

    var userRepos = repo
                       .Where(x => x.owner.id == user.id)
                       .Select(x => new GithubCustomApi { fullname = user.full_name, email = user.email, userRepo = x, ...})
                       .ToList();
    return userRepos;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多