Thanks to Sean Feldman
for the comment.
Code to filter an array.
string[] SBFilter = { "Topic1", "Topic2", "Topic3", "Topic4" };
if (SBFilter.Contains("Topic3"))
{
Console.WriteLine("Topic Present");
}
else
{
Console.WriteLine("Topic Not Present");
}
SQL Commmand to filter a table for a specific string from a column
select * from TABLE_Name where COLUMN_Name[1] like '%1%'
Code to search the Service Bus Topic Subscription.
public class Program
{
static ServiceBusAdministrationClient adminClient;
static readonly string connectionString = "ConnectionString";
static readonly string topicName = "TopicName";
static readonly string subscriptionAllOrders = "AllOrders";
static readonly string subscriptionColorBlueSize10Orders = "ColorBlueSize10Orders";
static readonly string subscriptionColorRed = "ColorRed";
static readonly string subscriptionHighPriorityRedOrders = "HighPriorityRedOrders";
public static async Task Main()
{
try
{
Console.WriteLine("Creating the Service Bus Administration Client object");
adminClient = new ServiceBusAdministrationClient(connectionString);
Console.WriteLine($"Creating the topic {topicName}");
await adminClient.CreateTopicAsync(topicName);
Console.WriteLine($"Creating the subscription {subscriptionAllOrders} for the topic with a True filter ");
await adminClient.CreateSubscriptionAsync(
new CreateSubscriptionOptions(topicName, subscriptionAllOrders),
new CreateRuleOptions("AllOrders", new TrueRuleFilter()));
Console.WriteLine($"Creating the subscription {subscriptionColorBlueSize10Orders} with a SQL filter");
await adminClient.CreateSubscriptionAsync(
new CreateSubscriptionOptions(topicName, subscriptionColorBlueSize10Orders),
new CreateRuleOptions("BlueSize10Orders", new SqlRuleFilter("color='blue' AND quantity=10")));
Console.WriteLine($"Creating the subscription {subscriptionColorRed} with a SQL filter");
await adminClient.CreateSubscriptionAsync(topicName, subscriptionColorRed);
await adminClient.DeleteRuleAsync(topicName, subscriptionColorRed, "$Default");
await adminClient.CreateRuleAsync(topicName, subscriptionColorRed, new CreateRuleOptions
{
Name = "RedOrdersWithAction",
Filter = new SqlRuleFilter("user.color='red'"),
Action = new SqlRuleAction("SET quantity = quantity / 2; REMOVE priority;SET sys.CorrelationId = 'low';")
}
);
Console.WriteLine($"Creating the subscription {subscriptionHighPriorityRedOrders} with a correlation filter");
await adminClient.CreateSubscriptionAsync(
new CreateSubscriptionOptions(topicName, subscriptionHighPriorityRedOrders),
new CreateRuleOptions("HighPriorityRedOrders", new CorrelationRuleFilter() { Subject = "red", CorrelationId = "high" }));
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
Output after filtering the Service bus topic using code.

Service Bus Topic

SQL Filter in Service Bus Subscription

Reference taken from MSDoc.