gpt4 book ai didi

c# - 具有可能的空对象的 Id 的 GroupBy

转载 作者:IT王子 更新时间:2023-10-29 04:36:50 26 4
gpt4 key购买 nike

我有一个 List<Item>

每个 Item 都有一个 Program,它有一个 Id。

如果一个项目还没有链接到一个程序,它的程序将为空。

我想按它的程序 ID 对所有项目进行分组

这是我试过的:

var listaAgrupada = client.ListarItens(null, null, null).GroupBy(x => x.Programa.Id).ToList();

如果所有项目都有一个程序,这就有效。但是如果程序为空,它会抛出 System.NullReferenceException:

Message = "Object reference not set to an instance of an object."

我认为这是因为 Program 为空,我无法访问它的 ID。

我需要所有项目,即使它们的程序为空(我也希望它们按空程序分组),所以排除它们不是一个选项。

我想过两种可能的解决方案,但我不确定如何去做:

一个会是这样的GroupBy(x => x.Programa == null || x.Programa.Id) (这是行不通的)

另一种是在 program 为 null 的地方添加一个空的程序对象,但我不知道该怎么做

当然,我也对其他解决方案持开放态度

提前致谢

最佳答案

假设您可以将所有 null 程序组合在一起,并且 Id 将是非负的,这样的事情怎么样:

GroupBy(x => x.Programa == null ? -1 : x.Programa.Id)

关于c# - 具有可能的空对象的 Id 的 GroupBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5782915/

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