Linq -不在逗号分隔的列表中
本文关键字:分隔 列表 Linq | 更新日期: 2023-09-27 18:02:17
我有一个名为game的对象,它有一个名为channels的属性(以逗号分隔,因为一个游戏可以与多个channel相关)。
我还有一个channel对象,它包含一个名为isActive的属性。
我需要的是一种方法,让所有的游戏都有活跃的渠道。
我开始写这个:
var oGames = games.AllActive.Where(
g => !g.StateProperties.Channels.Contains(
channels.All.Where(c => c.StateProperties.IsActive).ToArray()
);
但是被屏蔽了…有人能帮我吗?
var oGames = games.AllActive
.Where(g => g.StateProperties.Channels.Split(',')
.Intersect(channels.Where(c => c.StateProperties.IsActive)
.Select(c => c.Name)).Any());
我强烈建议不要使用csv格式的通道名,而是存储对通道名的引用。
这将大大简化代码。使用字典将字符串映射到通道也会有所帮助。