c# - 读写name值文本文件的简单方法

标签 c# .net file text

我有一些有很多字段的类;

public class CrowdedHouse
{
  public int     value1;
  public float   value2;
  public Guid    value3;
  public string  Value4;

  // some more fields below
}

我的类必须(反)序列化为以下格式的简单 Windows 文本文件

NAME1=VALUE1
NAME2=VALUE2

在 .NET 中最方便的方法是什么?这是一个文本文件,所有值都必须首先转换为字符串。假设我已经将所有数据转换为字符串。

更新 一个选项是 pinvoke WritePrivateProfileString/WritePrivateProfileString 但是这些使用了我不需要使用的必需的“[Section]”字段。

最佳答案

编辑:如果您已经将每个数据值转换为字符串,只需在生成 Dictionary 后使用下面的方法对其进行序列化。这些值:

var dict = new Dictionary<string, string>
{
    { "value1", "value1value" },
    { "value2", "value2value" },
    // etc
}

或使用 dict.Add(string key, string value) .


要读取数据,只需围绕 = 拆分每一行并将结果存储为 Dictionary<string, string> :

string[] lines = File.ReadAllLines("file.ext");
var dict = lines.Select(l => l.Split('=')).ToDictionary(a => a[0], a => a[1]);

要将字典转换为文件,请使用:

string[] lines = dict.Select(kvp => kvp.Key + "=" + kvp.Value).ToArray();
File.WriteAllLines(lines);

请注意您的 NAME s 和 VALUE s 不能包含 = .

关于c# - 读写name值文本文件的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781706/

相关文章:

c# - 如何更改 Microsoft C# 编译器错误消息的语言?

c# - 自动更正文本输入中的拼写错误

c# - 执行一个命令直到另一个命令完成

c# - 如何阅读文本框中的最后一行?

.net - VB.Net Handles 关键字 - 我需要手动调用RemoveHandler吗?

C# 关联数组

c# - Windows 服务 OnPowerEvent

jquery - Blueimp fileuplad - 如何在上传之前从队列中删除文件

c - 文件写入; SSH_AGENT_PID=2547?

C#处理固定宽度的文件