【问题标题】:filter datagridview using another datagridview使用另一个 datagridview 过滤 datagridview
【发布时间】:2016-08-17 14:02:18
【问题描述】:

我有一个大小约为 10-20 MB 的文本文件。

我想执行此选项。

1) 读取文本文件并拆分。

2) 将每行中的所有数据移动到数据网格视图中。

3) 创建一个附加的datagridview。用户可以根据 1 列(过滤器)的值定义哪一行可见,哪一行不可见。

我已经编写了一个代码,但是它需要很长时间。 读取第一个数据网格视图文本大约需要 40 秒。

当我尝试过滤时,用户过滤它也需要大约 40-50 秒,

有没有办法减少时间?做这种事情的最好方法是什么?使用数据源会有帮助吗?

谢谢,

【问题讨论】:

    标签: c# datagridview datasource


    【解决方案1】:

    我认为使用 linq 更好。

    像这样读取你的文件,你有一个文件行列表。

    var lst = System.IO.File.ReadAllLines(FilePath).ToList();
    

    现在您可以通过 linq 语句过滤您的列表。

    您可以简单地在数据网格中显示该列表。

    如果你想在datagrid中显示所有数据,这需要时间。

    您也可以为此创建一个类

    public class MyLine
    {
        public string Line {get; set; }
        public bool IsVisible { get; set; }
    }
    

    然后你可以阅读文件并有一个列表或你的班级,像这样:

    var lst = System.IO.File.ReadAllLines("")
                     .Select(x => new MyLine() { Line = x, IsVisible = true });
    

    然后为了获得可见的,写这个查询:

    var Visibles = lst.Where(x => x.IsVisible);
    

    希望对你有帮助。

    【讨论】:

    • 我希望用户将其过滤掉,我该怎么做?
    • 你能解释一下你的项目和文本文件以及表单设计吗?或发送您的表单设计图片。
    猜你喜欢
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2010-12-02
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多