using System.Collections.Generic;
public class SettingRules
public int From { get; set; }
public int To { get; set; }
public static void Main()
List<SettingRules> settingRulesList = new List<SettingRules>
new SettingRules { From = 1, To = 5 },
new SettingRules { From = 3, To = 5 },
new SettingRules { From = 5, To = 5 },
new SettingRules { From = 6, To = 10 },
new SettingRules { From = 11, To = 15 },
new SettingRules { From = 3, To = 7 }
SettingRules sr = new SettingRules { From = 1, To = 5 };
List<SettingRules> matchingPeriods = new List<SettingRules>();
for (int x = sr.From; x <= sr.To; x++)
foreach (SettingRules rule in settingRulesList.Where(rule => x >= rule.From && x <= rule.To))
if (!matchingPeriods.Contains(rule))
matchingPeriods.Add(rule);
Console.WriteLine(rule.From + " - " + rule.To);