如何根据特定值从数组中获取数据

时间:2016-07-17 15:22:53

标签: c# arrays list indexof

我在C#工作,导入数据时遇到了麻烦。

我有一个包含数据的txt文档:

S/1234 001 2583 2 0 3 
S/1234 002 4323 2 0 3
S/1234 003 4583 2 0 3
S/2582 001 8745 3 0 4
S/2582 002 8254 3 0 4
S/2582 003 658T 3 0 4
S/2582 004 8785 3 0 4

我在列表中导入了这个文档:

S/1234 2583
S/1234 4323
S/1234 4583
S/2582 8745
S/2582 8254
S/2582 658T
S/2582 8785

代码如下:

 string[] lines = System.IO.File.ReadAllLines(@fileLocal);
 List<string> whole_line = new List<string>();    
 List<string> only_first_column = new List<string>();    
 foreach (string line in lines)
    {
     string[] linee=line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
     whole_line.Add(linee[0].ToString()+" "+linee[2].ToString());
     only_first_column.Add(linee[0].ToString());
    }

现在,我的问题是,如何获取数据并将其存储在两个数组/或按值S / 1234和S / 2582列出?

我正在尝试获得阵列#1:

  

2583 4323 4583

和数组#2:

  

8745 8254 658T 8785

提前谢谢你:)

2 个答案:

答案 0 :(得分:0)

如果您只有这两个值S / 1234和S / 2582,您可以通过简单的方式完成。

string[] lines = System.IO.File.ReadAllLines(@fileLocal);
List<string> s1234 = new List<string>();    
List<string> s2582 = new List<string>();  

foreach (string line in lines)
{
        string[] linee = line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);

        if(linee[0].ToString() == "S/1234"){
            s1234.Add(linee[2].ToString()); 
        }else{
            s2582.Add(linee[2].ToString()); 
        }
}

请记住这是一个非常基本的解决方案,假设您只想处理这两个键,如果您的目标更通用则无法使用

答案 1 :(得分:0)

使用linq:

$=
相关问题