2016-08-17 95 views
0

我有一個大小約10-20 MB的文本文件。使用另一個datagridview過濾datagridview

我想執行此選項。

1)讀取文本文件並分割。

2)將每行中的所有數據移動到datagrid視圖中。

3)創建一個新的datagridview。用戶可以定義哪一行可見,哪一行不是每列值(過濾器)。

但是我寫了一個代碼,但是它需要很長時間。 閱讀到第一個數據網格視圖的文本需要大約40分鐘。

,當我試圖篩選約需40-50也直到謝勝利,用戶將其過濾,

有減少時間的方法嗎?做這種事情的最好方法是什麼?並且使用數據源可能會有幫助嗎?

謝謝,

回答

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