gpt4 book ai didi

c# - lambda 表达式中的 Where 条件 c#

转载 作者:行者123 更新时间:2023-11-30 20:23:05 25 4
gpt4 key购买 nike

我有一个像

这样的实体
public class Program
{
public int ID { get; set; }
public bool IsActive { get; set; }
public string Title { get; set; }
}

public class EMetrics
{
public int ID { get; set; }
public bool IsActive { get; set; }
public string Title { get; set; }
public List<Program> Programs { get; set; }
}

我有像这样的存储库方法,

IEnumerable<EMetrics> IEmetricsRepository.GetAllByProgram(params int[] programIds)
{
var metrics = EntitySet
.Where(x => programIds.Contains(x.Programs.Select(x => x.ID)))
.ToList();

return metrics;
}

[上面的代码抛出构建错误]

此处仅在我面临基于程序 ID 数组参数获取 EMetrics 的问题时。

我想要列出与程序关联的 Emetrics。

最佳答案

您在 LINQ 中错误地访问了相同的输入参数。应该通过更改内部 Select 以使用不同的参数来重构它:

IEnumerable<EMetrics> IEmetricsRepository.GetAllByProgram(params int[] programIds)
{
var metrics = EntitySet
.Where(x => programIds.Contains(x.Programs.Select(y => y.ID)))
.ToList();

return metrics;
}

关于c# - lambda 表达式中的 Where 条件 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29901112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com