4

これを説明するのは難しいですが、いくつかのコードが役立つことを願っています:

        var softChannels = channels.ByPath("/software/").Children.Where(c => c.StateProperties.IsActive);

        var tmpGames = new List<MyCms.Content.Games.Game>();
        // Get games only from active game channels
        foreach (var channel in channels.ByPath("/gameslivecasinodirectcom/game-channels/").Children.Where(c => c.StateProperties.IsActive))
        {
            // QUESTION IS ABOUT THIS LINE
            tmpGames.AddRange(oGames.AllActive.Where(g => g.StateProperties.Channels.Contains(channel.Guid) && g.GamingProperties.Software.Contains(softChannels)));
        }

私がやりたいg.GamingProperties.Softwareのは、softChannels の Guid の 1 つが含まれている場合は、それを追加することです。たぶん、別のアプローチの方が良いでしょう...何か提案はありますか?

ps行が機能していないことはわかっています。必要なものを簡単に理解するためだけにコードを配置しました。

編集:私はそれを解決したと思います:

var softChannels = channels.ByPath("/software/").Children.Where(c => c.StateProperties.IsActive).Select(c => c.Guid);

var tmpGames = new List<MyCms.Content.Games.Game>();
// Get games only from active game channels
foreach (var channel in channels.ByPath("/gameslivecasinodirectcom/game-channels/").Children.Where(c => c.StateProperties.IsActive))
{
    tmpGames.AddRange(oGames.AllActive.Where(g => g.StateProperties.Channels.Contains(channel.Guid) && softChannels.Contains(g.GamingProperties.Software.Trim())));
}

誰かがそれに何か問題があると思ったら、私に知らせてください。

4

1 に答える 1

6

が含まれAny()ているかどうかを確認します。softChannels

softChannels.Any(sc => g.GamingProperties.Software.Contains(sc))

実際、あなたも書くことができます

softChannels.Any(g.GamingProperties.Software.Contains)
于 2011-07-18T15:36:25.823 に答える