En este articulo les voy a mostrar como buscar en una datagridview y ordenar los resultados con LINQ. Utilizaremos para buscar la extensión Contains y para ordenar los resultados en forma ascendente o descendente con orderby.
Interfaz Gráfica
Procedimiento
Luego de crear nuestro proyecto, agregamos una clase llamada personEn que va a contener las propiedades que van a corresponder a cada columna
    class personEn
    {
        public int codEn { get; set; }
        public string firstName { get; set; }
        public string middleName { get; set; }
        public string lastName { get; set; }
    }
En el evento load del formulario vamos a cargar nuestro datagridview
        private void BuscarOrdenarFrm_Load(object sender, EventArgs e)
        {
            itemsCMB.SelectedIndex = 0;
            dataDG.DataSource = getPersons();
            dataDG.Columns[0].Width = 120;
            dataDG.Columns[1].Width = 120;
            dataDG.Columns[2].Width = 120;
            dataDG.Columns[3].Width = 120;
        }
        private List<personEn> getPersons()
        {
            using (SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["CNNBD"].ToString()))
            {
                cnn.Open();
                string query = "SELECT BusinessEntityID,FirstName, " +
                                    "MiddleName,LastName FROM Person.Person";
                SqlCommand cmd = new SqlCommand(query, cnn);
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    personEn person = new personEn();
                    person.codEn = reader.GetInt32(0);
                    person.firstName = reader[1].ToString();
                    person.middleName = reader[2].ToString();
                    person.lastName = reader[3].ToString();
                    personList.Add(person);
                }
            }
            return personList;
        }
En el sqlconnection utilizo la clase ConfigurationManager para obtener la cadena de conexión a nuestra base de datos.
