如何将整数列表写入文件以供其他时间加载?

Ted*_*ddy 0 c# string io file

我是 c# 新手,所以这可能有点傻。

我想将整数列表或整数数组写入文件。

如果我使用C,我可能会写成如下。

为了节省

int a[1024] = {0,};
fwrite(a,sizeof(int),1024,fp);
Run Code Online (Sandbox Code Playgroud)

装载用

int *a = null;
fseek(fp, 0, SEEK_END);

int ArraySize = ftell(fp)/sizeof(int);

a = (int*)malloc(sizeof(int)*ArraySize);
fread(a,sizeof(int),1024,fp);
Run Code Online (Sandbox Code Playgroud)

有什么好的保存和加载方法吗?

以下是我的 C# 代码。

保存

List<List<int>> a = new List<List<int>>();
...
...
StreamWriter wt = new StreamWriter(path);
foreach(List<int> i in a)
{
    wt.WriteLine(string.Join(",",i));
}
Run Code Online (Sandbox Code Playgroud)

加载中

List<List<int>> a = new List<List<int>>();
...
...
StreamReader rd = new StreamReader(path);
string s = "";
while((s=rd.ReadLine())!=null)
{
    a.add(s.split(',').select(int.Parse).toList());
}
Run Code Online (Sandbox Code Playgroud)

如果你们有任何想法,请帮助我。

Anu*_*wan 5

您可以利用File.WriteAllLinesFile.ReadAllLines。例如,

写入文件

File.WriteAllLines(filePath,list.Select(x=>x.ToString()));
Run Code Online (Sandbox Code Playgroud)

从文件中读取

var readList = File.ReadAllLines(filePath).Select(x=>Convert.ToInt32(x)).ToList();
Run Code Online (Sandbox Code Playgroud)

使用“Convert.ToInt32”Enumerable.Select方法将序列的每个元素(在本例中是从文本文件读取的所有行)投影为整数。