2008-12-08 10 views

Respuesta

5

C# 2.0? O C# 3.0? La respuesta LINQ (C# 3.0, ya sea con .NET 3.5 o .NET 2.0/3.0 con LINQBridge) es mucho más fácil ;-P

es decir

var names = (from col in listView.Columns.Cast<ColumnHeader>() 
       orderby col.DisplayIndex 
       select col.Text).ToList(); 

vs:

 List<ColumnHeader> cols = new List<ColumnHeader>(); 
     // populate 
     foreach (ColumnHeader column in listView.Columns) { 
      cols.Add(column); 
     } 
     // sort 
     cols.Sort(delegate(ColumnHeader x, ColumnHeader y) { 
      return x.DisplayIndex.CompareTo(y.DisplayIndex); 
     }); 
     // project 
     List<string> names = cols.ConvertAll<string>(delegate(ColumnHeader x) { 
      return x.Text; 
     }); 

De cualquier manera, que le da un List<string> de los valores de texto del encabezado de la columna.

Cuestiones relacionadas