【发布时间】:2020-03-11 15:24:10
【问题描述】:
我有一个合同列表,我通过 clientId 将它们捆绑在一起。但我只想返回合同 ID。
Input =>
let c1 = {client:1,id:"c1"}
let c2 = {client:2,id:"c2"}
let c3 = {client:2,id:"c3"}
let c4 = {client:1,id:"c4"}
let c5 = {client:3,id:"c5"}
let list = [c1,c2,c3,c4,c5]
期望的输出:
[[c1.id,c4.id],[c2.id,c3.id],[c5.id]]
我有以下函数,但它通过它的键返回两个子组(这是迄今为止我看到的唯一可访问的东西)
public JsonResult checkForSameClient(long[] listOfContracts)
{
IQueryable<ContratEspace> contrats = contratEspaceRepository.Get(1, listOfContracts.Count(), listOfContracts);
var contratList = contrats.ToList();
var finalArray = contrats.GroupBy(c => c.id_clientGestion).ToList();
var answer = finalArray.Select(c=>c.Key).Distinct().ToList();
return new JsonResult() { Data = answer };
}
【问题讨论】:
-
你试过调试代码吗?
-
这段代码没有错误,只是没有返回我想要的。
-
您可以使用调试器检查每一步是否产生正确的结果,从而缩小产生错误数据的地方
-
是的,问题是我不确定我使用正确的方法来实现我想要的。我有合同列表,然后按 client_id 对其进行分组。但是,我不想返回包含整个对象的子列表的列表,我想要一个包含仅包含合同 ID 的子列表的列表 - 而不是整个合同。
-
因此,如果代码没有返回您想要的(即没有达到预期的结果),那么它就会被窃听。按照@Renat 的建议,使用调试器单步调试这段代码,看看出了什么问题
标签: c# entity-framework linq group-by