2011-07-18 8 views
4

そのハード値が含まれていますが、私はいくつかのコードが役立つことを願っています:のLINQは、リストに

 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が含まれている場合は、それを追加します。おそらく別のアプローチが良いでしょう...どんな提案?

p.s私はその行が機能していないことを知っています。私は必要なものを簡単に理解するためにしかコードを入れていません。

EDIT:

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()))); 
} 

誰もがそれと間違って何かを見れば、私に知らせてください。私はそれを解決してきた と思います。あなたがsoftChannelsAny()が含まれているかどうかを確認したい

+0

を書き込むことができますか? – BrokenGlass

+0

'g.GamingProperties.Software'とはどのようなタイプですか? – SLaks

+0

文字列(guidを含む) – Dementic

答えて

6

:実際には

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

を、あなたも働いていない、あなたはどのようなエラーが出るんまさに

softChannels.Any(g.GamingProperties.Software.Contains) 
+0

あなたのものはより良い解決策です。 – Dementic

関連する問題