C#的新手.我正在从一个.csv文件中读取两列,并创建一个IEnumerable<string[]>
.我有下面的代码,它是工作的,但有时一行可能是空的(由下表中的半高行所示),在这种情况下,我想用字符串"0"来替换它.当我调试代码时,任何空单元格在列表中都显示为"".
Lat | Lng |
---|---|
51.452703 | 36.622065 |
28.721829 | 41.013330 |
原始CSV数据格式:
Col1,Col2,Col3,Col4,Col5,Col6,Lat,Lng,Col9
one street,300,,,GUANGDONG,CN,,,
public static IEnumerable<string[]> ReadCSV(string path)
{
using (var parser = new TextFieldParser(path))
{
parser.Delimiters = new string[] { "," };
parser.ReadFields(); // read past the header
while (!parser.EndOfData)
{
yield return parser.ReadFields().Skip(6).Take(2).Reverse().ToArray();
}
}
}
下面是我try 用"0"替换"",但是我得到了错误:string不能为零长度,paramenter name oldValue.我明白了,它需要一些东西来寻找.但我不知道现在该go 哪.
public static IEnumerable<string[]> ReadCSV(string path)
{
string[] test;
using (var parser = new TextFieldParser(path))
{
parser.Delimiters = new string[] { "," };
parser.ReadFields(); // read past the header
while (!parser.EndOfData)
{
test = parser.ReadFields().Skip(6).Take(2).Reverse().ToArray();
var replacedNames = test.Select(x => x.Replace("", "0")).ToArray();
yield return replacedNames;
}
}
}