dotnet server request variables linq

var keys = new String[] {
  "CACHE_URL",
  "DOCUMENT_ROOT",
  "HTTP_URL",
  "HTTP_HOST",
  "PATH_INFO",
  "PATH_TRANSLATED",
  "QUERY_STRING",
  "REQUEST_FILENAME",
  "REQUEST_URI",
  "SCRIPT_FILENAME",
  "SCRIPT_NAME",
  "SCRIPT_TRANSLATED",
  "UNENCODED_URL",
  "URL",
  "URL_PATH_INFO",
  "APP_POOL_ID",
  "APPL_MD_PATH",
  "APPL_PHYSICAL_PATH",
  "GATEWAY_INTERFACE",
  "SERVER_SOFTWARE",
  "SSI_EXEC_DISABLED"
};

grd.DataSource = from key in Request.ServerVariables.Cast<String>()
 from value in Request.ServerVariables.GetValues(key)
 where keys.Any(key.Contains)
 select new { key, value };

grd.DataBind();