2013-09-26 48 views
1

我寫了一個管理不同的文本文件和檢索數據的C#程序,比較領域等等等等最快的方法獲取數據結構數組

我的做法是,從TXT文件中的數據存儲到不同結構的數組字段(例如文件名,文件長度,包含的行等)。例如,一個文件就可以

Name1 ID1 Lenght1 Path1 User1 
    Name2 ID1 Lenght2 Path1 User4 
    Name3 ID2 Lenght2 Path3 User1 
    ... 

我把這些字段結構

  NAME  ID  LENGHT  PATH  USER 

    [0] Name1 Id1 Lenght1 Path1 User1 
    [1] Name2 Id1 Lenght2 Path1 User4 
    [2] Name3 Id2 Lenght2 Path3 User1 
    ... 

而且比我檢索與特定的角整排的陣列,比如我要與NAME的所有行= Name2 AND PATH = Path1。在前面的例子中,我檢索用[1]索引的結構體。

當需要分析的數據長大時,我需要儘可能快地獲得這種數據。

其實這個想法是有一個循環,比較結構中的所有字段並保存相對角落的行(例如NAME = Name2 AND PATH = Path1)。不幸的是,這種方法很長,不可接受。你有什麼建議嗎?

+1

對於一個使用結構的數據結構來說會導致速度變慢,爲什麼要使用結構而不是類? –

+0

_「的想法是有一個 爲 該cicles」_ ?? –

+0

如果文本文件採用分隔格式(如tab或逗號分隔),則可以將它們作爲Odbc數據源進行查詢。例如,請參閱http://stackoverflow.com/questions/10624286/how-to-use-sql-against-a-csv-file。 – dash

回答

1

假設你有一個自定義類型的數組,你可以使用LINQ來過濾數組:

var items = yourArray 
    .Where(x => x.Name == "Name2" && x.Path == "Path2"); 

假設yourArray是這樣的:

public class MyType 
{ 
    public string Name { get; set; } 
    public string ID { get; set; } 
    public string Path { get; set; } 
    public string User { get; set; } 
} 

然後,你可以從你的文字讀文件和你的類型。

+0

非常感謝,它似乎工作。另一個問題,我如何使用變量項來獲取其餘數據? BR – user2819934

+0

@ user2819934我不確定你在問什麼? – mattytommo

相關問題