2016-08-17 5 views
0

Ich habe eine Textdatei mit der Größe ca. 10-20 MB.filter datagridview mit einem anderen datagridview

Ich möchte diese Optionen perfom.

1) Lesen Sie die Textdatei und splitten Sie.

2) Verschieben Sie alle Daten in jeder Zeile in eine Datagrid-Ansicht.

3) Erstellen Sie eine Addition datagridview. dass der Benutzer definieren kann, welche Zeile sichtbar sein kann und welche nicht pro Werte von 1 Spalte (Filter).

Ich habe einen Code geschrieben, aber es dauert lange. Lesen in der ersten Datagrid-Ansicht dauert der Text etwa 40 Sekunden.

als ich versuchte, es dauert etwa zu filtern auch 40-50 secound bis der Benutzer es filtern,

ist es eine Möglichkeit, die Zeit zu reduzieren? Was ist der beste Weg, um so etwas zu tun? und kann die Verwendung einer Datenquelle hilfreich sein?

Danke,

Antwort

0

Ich denke, es ist besser, linq zu verwenden.

Lesen Sie Ihre Datei so und Sie haben eine Liste von Dateizeilen.

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

Jetzt können Sie Ihre Liste nach Linq-Anweisungen filtern.

Und Sie können einfach die Liste in Ihrem Datagrid anzeigen.

Wenn Sie alle Daten in Datagrid anzeigen möchten, braucht es Zeit.

Sie auch eine Klasse für diesen Zweck erstellen

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

Dann können Sie die Datei lesen und eine Liste oder Ihre Klasse, wie folgt aus:

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

Dann ist für immer sichtbar diejenigen schreiben Diese Abfrage:

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

Ich hoffe, es hilft.

+0

Ich möchte der Benutzer es herausfiltern, wie kann ich das tun? – Barakr

+0

Können Sie mehr über Ihre Projekt- und Textdatei und den Formularentwurf erklären? Oder senden Sie ein Bild Ihres Formularentwurfs. – MSL