如何在.NET 3.5中读取/输入数据?

时间:2013-10-30 15:23:28

标签: c# io

我已经习惯了.NET 4.0,但遇到了我必须恢复到.NET 3.5的情况。

在我的4.0代码中,我会依赖它来读取我的数据:

var Data = File.ReadLines(FilePath).Select(line => line.Split('\t')).ToArray();

以上内容在3.5中不起作用。有谁知道3.5中的等价物是什么允许我在'FilePath'读取数据并将数据放入数组?

我在3.5中得到的错误是System.IO.File不包含ReadLines的定义。当我将项目属性更改为4.0的目标框架时,不会出现此错误。当我使用目标框架3.5时,它会重新出现。

4 个答案:

答案 0 :(得分:6)

那么你可以使用File.ReadAllLines代替 - 这会将整个文件读成string[]而不是逐行读取,但是由于{你无论如何都要将整个文件读入内存中{1}}调用,因此效率低于ToArray

答案 1 :(得分:4)

ReadLines是.Net 4+。您应该可以使用ReadAllLines代替。

MSDN Documentation

  

ReadLines和ReadAllLines方法的不同之处如下:使用ReadLines时,可以在返回整个集合之前开始枚举字符串集合;当您使用ReadAllLines时,必须等待返回整个字符串数组才能访问该数组。因此,当您使用非常大的文件时,ReadLines可以更有效。

答案 2 :(得分:3)

这应该有效:

var Data = File.ReadAllLines(FilePath).Select(line => line.Split('\t')).ToArray();
.NET Framework 3.5中提供了

ReadAllLinesReadLines懒惰地读取文件的行,并且仅在.NET Framework 4.0中可用,但由于您要将整个事物转换为数组,ReadAllLines应该适合您的需要。

答案 3 :(得分:2)

在.NET 4中添加了

ReadLines。由于您无论如何都在使用整个IEnumerable<string>,因此可以使用ReadAllLines

var Data = File.ReadAllLines(FilePath).Select(line => line.Split('\t')).ToArray();