在struct数组中获取数据的最快方法

时间:2013-09-26 14:51:43

标签: c# arrays struct

我编写了一个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]索引的结构。

当需要分析的数据增长时,我需要尽快获得此类数据。

实际上,这个想法是让一个for循环循环并比较结构中的所有字段并保存与角相关的行(例如NAME = Name2 AND PATH = Path1)。不幸的是,这种方法很长,不可接受。你有什么建议吗?

1 个答案:

答案 0 :(得分: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; }
}

然后你可以从你的文本文件中读取你的类型。