Let's say for example this is your class:
private class Foo
{
    public readonly string trackingNumber;
    public readonly string orderNumber;
    public Foo(string trackingNumber, string orderNumber)
    {
        this.trackingNumber = trackingNumber;
        this.orderNumber = orderNumber;
    }
}
Getting unique items by trackingNumber and orderNumber can be achieved by leveraging Distinct method passing appropriate comparer:
    private class ByTrackingNumberAndOrderComparer : IEqualityComparer<Foo>
    {
        public bool Equals(Foo x, Foo y)
        {
            return string.Equals(x.trackingNumber, y.trackingNumber)
                && string.Equals(x.orderNumber, y.orderNumber);
        }
        public int GetHashCode(Foo obj)
        {
            return (obj.trackingNumber == null ? 0 : obj.trackingNumber.GetHashCode())
                ^ 397 ^ (obj.orderNumber == null ? 0 : obj.orderNumber.GetHashCode());
        }
    }
Usage:
Foo[] foos = Generate(150000);
Foo[] distinct = foos.Distinct(new ByTrackingNumberAndOrderComparer()).ToArray();