I have created a method in c# which is fairly simple BUT i use it everywhere on a page. is there a way to reduce method calling, i mean once method called, the return value stored somewhere and i use that value instead. here is my code.

I have declared some public properties like this.

```
public OrderCollection GetAllClickCollectOrders
{
    get
    {
        return GetClickCollectOrderDetails(Session["SelectedStorePostCode"].ToString());
    }
}

public OrderCollection GetShippedClickCollectOrders
{
    get
    {
        return GetShippedClickCollectOrderDetails();
    }
}

```

AND here are the methods..

```
protected OrderCollection GetClickCollectOrderDetails(string postcode)
{
    // some database ziggy wiggy...

    return cncOrderCol;
}

protected OrderCollection GetShippedClickCollectOrderDetails()
{
    // some database ziggy wiggy...

    return cncShippedOrderCol;
}

```

So, lets say whn i want the collection i am calling it this way.

```
BindGridView(GetAllClickCollectOrders);
orderCount.Text = "Total orders placed: " + GetAllClickCollectOrders.Count;

if (isShipped.Checked)
{
    BindGridView(GetShippedClickCollectOrders);
    orderCount.Text = "Total orders shipped: " + GetShippedClickCollectOrders.Count;
}

```

---

So whenever i use the property, it calls the methods everytime and goes to database and returns me the result. however, most of the time results are the same unless i change the `Session["SelectedStorePostCode"]` value. I was thinking if there are any better ways for storing that results somewhere and use that.

Note: The code works fine but i am looking for better performance. Thanks guys...