C# LINQ高级查询3级
这是我的目标: 控制台:PlaystationC# LINQ高级查询3级,c#,linq,C#,Linq,这是我的目标: 控制台:Playstation Type : PSX Price : 100 AvailableIn : [ "USA", "JAPAN" ] Type : PS3 Price : 250 AvailableIn : [] Type : PS4 Price : 500 AvailableIn : [ "USA", "JAPAN" ] Type : PSX Price : 100 Avai
Type : PSX
Price : 100
AvailableIn : [ "USA", "JAPAN" ]
Type : PS3
Price : 250
AvailableIn : []
Type : PS4
Price : 500
AvailableIn : [ "USA", "JAPAN" ]
Type : PSX
Price : 100
AvailableIn : [ "USA", "JAPAN" ]
Type : PS4
Price : 500
AvailableIn : [ "USA", "JAPAN" ]
主机:XBOX
Type : XBOX 360
Price : 100
AvailableIn : []
Type : XBOX One
Price : 250
AvailableIn : [ "USA", "JAPAN" ]
Type : XBOX One
Price : 250
AvailableIn : [ "USA", "JAPAN" ]
游戏机:游戏机
Type : GBC
Price : 100
AvailableIn : [ "USA", "JAPAN" ]
Type : GBA
Price : 250
AvailableIn : []
Type : GBC
Price : 100
AvailableIn : [ "USA", "JAPAN" ]
大家好, 如果“AvailableIn”不为空,我需要一个LINQ查询来选择所有可用的控制台 以下是我的预期结果: 控制台:Playstation
Type : PSX
Price : 100
AvailableIn : [ "USA", "JAPAN" ]
Type : PS3
Price : 250
AvailableIn : []
Type : PS4
Price : 500
AvailableIn : [ "USA", "JAPAN" ]
Type : PSX
Price : 100
AvailableIn : [ "USA", "JAPAN" ]
Type : PS4
Price : 500
AvailableIn : [ "USA", "JAPAN" ]
主机:XBOX
Type : XBOX 360
Price : 100
AvailableIn : []
Type : XBOX One
Price : 250
AvailableIn : [ "USA", "JAPAN" ]
Type : XBOX One
Price : 250
AvailableIn : [ "USA", "JAPAN" ]
游戏机:游戏机
Type : GBC
Price : 100
AvailableIn : [ "USA", "JAPAN" ]
Type : GBA
Price : 250
AvailableIn : []
Type : GBC
Price : 100
AvailableIn : [ "USA", "JAPAN" ]
谢谢
我确实试过了
var models = Consoles
.Where(c => c.Types.Any(t => t.AvailableIn.Count() != 0))
但这对我不起作用。这应该行得通
var models = Consoles.Where(x=>x.Types.Any(t=>t.AvailableIn.Any()));
如果“AvailableIn”不为空
null
与0不同,可能需要:
var models = Consoles
.Where(c => c.Types.Any(t => t.AvailableIn != null && t.AvailableIn.Any()));
对其他答案的评论:
我仍然得到类型:XBOX 360价格:100可用:[]和
类型:GBA价格:250可用in:[]仍在结果中,I
如果可用性=null
我猜,如果任何控制台类型不可用,您希望排除所有控制台,对吗
然后所有的都应该工作:
var models = Consoles
.Where(c => c.Types.All(t => t.AvailableIn != null && t.AvailableIn.Any()));
如果您只想排除不可用的所有控制台的类型,则需要创建不包含以下类型的控制台的新实例:
var models = Consoles
.Where(c => c.Types.Any(t => t.AvailableIn != null && t.AvailableIn.Any()))
.Select(c => new Console
{
AvailableIn = c.Types
.Where(t => t.AvailableIn != null && t.AvailableIn.Any()),
OtherProperties ....
});
“LINQ高级查询3级”这是什么??考虑到标题是用在谷歌找到你的问题,这听起来像一个问题,这将有助于许多人?感谢您的快速答复@ JYPARTASK,与此LINQ查询,XBOX360和GBA仍然出现的结果。我想摆脱如果他们,如果他们不可用