public GameChannel(GameChannelList gameChannelList, GameChannelKey gamePropertyFilter) { this.key = gamePropertyFilter; this.gameChannelList = gameChannelList; foreach (var gameState in gameChannelList.GameDict.Values) { if (gameState.IsVisbleInLobby && this.GameProperties.IsSubsetOf(gameState.Properties)) { this.gameDict.Add(gameState.Id, gameState); } } var sb = new StringBuilder(); bool seperator = false; foreach (DictionaryEntry entry in this.GameProperties) { if (seperator) { sb.Append(" | "); } else { seperator = true; } sb.AppendFormat("{0}:{1}", entry.Key, entry.Value); } this.propertyString = sb.ToString(); if (log.IsDebugEnabled) { log.DebugFormat("Created new game channel: {0}", this.propertyString); } }