determining if a range is within array of ranges I have a List of a custom structure (myStruct) which has two ranges stored in it. 
I'm trying to write a function where I can figure out if a range is completely enclosed in any of the ranges. Is this optimal and if not how can I improve it in terms of speed and memory efficiency?

class myStruct {
    private int start_one;
    private int stop_one;
    private int start_two;
    private int stop_two;

    public myStruct(int input_start_one, int input_stop_one, int input_start_two, int input_stop_two)
    {
        start_one = input_start_one;
        stop_one = input_stop_one;
        start_two = input_start_two;
        stop_two = input_stop_two;      
    }
}

public void run() 
{
    List&lt;Struct&gt; myStructs = new List&lt;Struct&gt;();
    myStructs.Add(new myStruct(86,724,725,1364));
    myStructs.Add(new myStruct(86,724,2068,2707));
    myStructs.Add(new myStruct(725,1364,2068,2707));

    if(is_in_range(88,100))
    {
        // in range
    }
}

public bool is_in_range(int in_start, int in_stop, BindingList&lt;myStruct&gt; input_list)
{
    myStruct current_item;
    for (int i = 0; i &lt; input_list.Count; i++)
    {
        current_item = input_list[i];

        if (   (in_start &gt;= current_item.start_one &amp;&amp; in_stop &lt;= current_item.stop_one)
            || (in_start &gt;= current_item.start_two &amp;&amp; in_stop &lt;= current_item.stop_two))
                return true;
    }

    return false;
}
Just an idea

public struct Range
{
    public readonly int From;
    public readonly int To;

    public Range(int from, int to)
    {
        From = from;
        To = to;
    }

    public bool Contains(Range other)
    {
        return Contains(other.From, other.To);
    }

    public bool Contains(int from, int to)
    {
        return From &lt;= from &amp;&amp; To &gt;= to;
    }
}


public class MyStruct
{
    public readonly Range Range1;
    public readonly Range Range2;

    public MyStruct(Range range1, Range range2)
    {
        Range1 = range1;
        Range2 = range2;
    }

    public MyStruct(int from1, int to1, int from2, int to2)
    {
        Range1 = new Range(from1, to1);
        Range2 = new Range(from2, to2);
    }

    public bool Contains(Range r)
    {
        return Range1.Contains(r) || Range2.Contains(r);
    }

    public bool Contains(int from, int to)
    {
        return Range1.Contains(from, to) || Range2.Contains(from, to);
    }
}


-

List&lt;MyStruct&gt; myStructs = new List&lt;MyStruct&gt;()
    {
        new MyStruct(86, 724, 725, 1364),
        new MyStruct(86, 724, 2068, 2707),
        new MyStruct(725, 1364, 2068, 2707)
    };

bool b = myStructs.Any(r =&gt; r.Contains(88, 100));