Another point in performance is that the operator SPContext.Current.Web.Site.OpenWeb().Lists["List"] will access the List from the current site SPContext.Current.Web.Lists["List"]; , and the line SPContext.Current.Web.Lists["List"]; will get access to the list from the current network, but not from the current site collection.
Consider this scenario ...
Consider whether the Employee list exists in the site http://[web-app]/sites/sa .
And the sa site database has a child node.
Then, if you use this line SPContext.Current.Web.Lists["List"]; , then she will try to find the list on the network inside sa / en-us, which, in turn, throws an error.
While using the instruction SPContext.Current.Web.Site.OpenWeb().Lists["List"]; a list will be found in the site collection and successfully launched.
source share