2016-08-17 8 views
0

サイズが約10-20 MBのテキストファイルがあります。別のデータグリッドビューを使用してデータグリッドビューをフィルタする

このオプションを実行したいと思います。

1)テキストファイルを読み取り、分割します。

2)各行のすべてのデータをDataGridビューに移動します。

3)追加データグリッドビューを作成します。ユーザーは、どの行を表示することができ、どの行を1列(フィルタ)の値にするのかを定義することができます。

私はコードを書いたことがありますが、時間がかかります。 最初のDataGridビューにテキストを読み込むには約40秒かかる。

私はそれがユーザーまでについても、40〜50 secoundはそれをフィルタリング取るフィルタリングしようとした、

は、時間を短縮する方法はありますか?この種のことをする最善の方法は何ですか?データソースを使用しても便利ですか?

ありがとう、

答えて

0

私は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); 

希望します。

+0

私はユーザーにフィルターをかけてそれをどうしたらいいですか? – Barakr

+0

プロジェクトやテキストファイル、フォームデザインについて詳しく説明できますか?または、あなたのフォームデザインの写真を送ってください。 – MSL

関連する問題