如果listview的AllowReorder列设置为true,如何在运行时基于列标题文本的displayindex获取字符串列表? listview.Columns仅按原始顺序返回列。

最佳答案

C#2.0?还是C#3.0? LINQ答案(C#3.0,带有.NET 3.5或.NET 2.0/3.0,带有LINQBridge)要容易得多; -p

IE。

    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;
        });

无论哪种方式,都将为您提供列标题文本值的List<string>

关于c# - 如何获取基于displayindex的 ListView 的列标题的列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/348604/

10-09 10:06