我需要做的是读取特定的文本文件,并根据字符串拉出整个列。
因此,如果我的字符串是停车费,我会在我的|中删除任何列标题行匹配单词parkingfee的分隔文件
答案 0 :(得分:1)
这应该可以帮到你。要做你想做的事,你可以这样做:
foreach(string val in GetColumnValues(fileName, "parkingfee", "|")
{
...
}
这是功能:
public static IEnumerable<string> GetColumnValues(string fileName, string columnName, string delimiter)
{
using (System.IO.StreamReader reader = new System.IO.StreamReader(fileName))
{
string[] delim = new string[] { delimiter };
string[] columns = reader.ReadLine().Split(delim, StringSplitOptions.None);
int column = -1;
for (int i = 0; i < columns.Length; i++)
{
if (string.Compare(columns[i], columnName, true) == 0)
{
column = i;
break;
}
}
if (column == -1) throw new ArgumentException("The specified column could not be found.");
while (reader.BaseStream.Position < reader.BaseStream.Length)
{
string[] line = reader.ReadLine().Split(delim, StringSplitOptions.None);
if (line.Length > column) yield return line[column];
}
}
}