c# - 如何根据displayindex获取listview的列标题列表?

标签 c# listview

如果 ListView 的 AllowReorder 列设置为 true,我如何在运行时根据它们的显示索引获取列标题文本的字符串列表? listview.Columns 只返回原始顺序的列。

最佳答案

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

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

对比:

        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/

相关文章:

c# - ASP.NET MVC 4 自定义 404 页面

c# - 如何删除 JSON 字符串中的开始和结束双引号以及所有反斜杠 - C#

c# - c# 的磁盘支持字典/缓存

c# - 在 C# Windows 窗体中将组和项目添加到 ListView

c# - 服务器上的 MVC 3 应用程序总是出现 500 错误

C# API POST 请求

android - 在 ListView 中拉伸(stretch)一个项目

android - onLongClickListener 永远不会被触发

java - 检查自定义 ListView 中的值是否已存在

java - 当 ListView 中没有项目(显示空 View )时,我想删除 optionMenu?