C# - 使用单个键从文本文件中获取多个值

标签 c# file dictionary io

我在一个文本文件中存储了共享一个键的多个值。文本文件如下所示:

Brightness 36 , Manual
BacklightCompensation 3 , Manual
ColorEnable 0 , None
Contrast 16 , Manual
Gain 5 , Manual
Gamma 122 , Manual
Hue 0 , Manual
Saturation 100 , Manual
Sharpness 2 , Manual
WhiteBalance 5450 , Auto

现在我想存储每个键(例如亮度)的 int 值和字符串值。

C# 的新手,找不到有用的东西。

谢谢

最佳答案

我建议使用自定义类型来存储这些设置,如下所示:

public enum DisplaySettingType
{
    Manual, Auto, None
}

public class DisplaySetting
{
    public string Name { get; set; }
    public decimal Value { get; set; }
    public DisplaySettingType Type { get; set; }
}

然后您可以使用以下使用 string.Split 的 LINQ 查询来获取所有设置:

decimal value = 0;
DisplaySettingType type = DisplaySettingType.None;

IEnumerable<DisplaySetting> settings = File.ReadLines(path)
    .Select(l => l.Trim().Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries))
    .Where(arr => arr.Length >= 3 && decimal.TryParse(arr[1], out value) && Enum.TryParse(arr[2], out type))
    .Select(arr => new DisplaySetting { Name = arr[0], Value = value, Type = type });

关于C# - 使用单个键从文本文件中获取多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43892730/

相关文章:

C#,循环遍历数据集并显示数据集列中的每条记录

c# - 创建事件是将 XF OnAppearing 变成异步方法的有效方法吗?

java - 如何在java servlet中读取文件

javascript - Golang vs JavaScript (v8/node.js) map 性能

arrays - iOS - 字典中的顺序问题

Python 组合相同字典的值而不使用循环

c# - Entity Framework 是否有某种上下文缓存?

c# - 为什么 var 只能在一条语句中声明和初始化?

linux - 如果两个进程在没有锁的情况下访问同一个文件会发生什么?

eclipse - 文件消失,可能与 Eclipse 有关