How do I code this second entry filter on C#

What you described in the latter part is called Static Data in financial trading parlance. That includes a symbol database among many others.

Unless you iterate over tens of millions of data points the overhead of even 20 if conditions is negligible especially if those if conditions are encapsulated by other if conditions (if conditions inside other if conditions)

In OP's case the setup is very simple: if currentSymbol is cintained is specific symbol collection then
{
if a > b then ...
}

What you describe makes sense but I could easily see what the OP described spiraling out of control as I am picturing a huge if/else tree containing conditional logic pertaining to only certain groups of symbols.

Obviously I don't know all of the details of what you described above, but I have a similar issue in that I have symbols that I need to get info for (tick size, margin percent, instument type, etc.) in numerous parts of my app. The solution I came up with is to have an in memory exchange that I populate at application startup and I can access from anywhere in my app. The data does not change during the course of running the application so it works. Of course this approach may not work for your use case.
 
Back
Top