C#读取ini文件

2024-01-11

我正在尝试读取具有以下格式的 ini 文件:

SETTING=VALUE 
SETTING2=VALUE2

我目前有以下代码:

string cache = sr.ReadToEnd();                    
string[] splitCache = cache.Split(new string[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries);

这给了我一个设置列表,但是,我想做的是将其读入字典。我的问题是,有没有办法做到这一点,而无需迭代整个数组并手动填充字典?


好吧,你可以使用 LINQ 并执行以下操作

Dictionary<string, string> ini = (from entry in splitCache
                                  let key = entry.Substring(0, entry.FirstIndexOf("="))
                                  let value = entry.Substring(entry.FirstIndexOf("="))
                                  select new { key, value }).ToDictionary(e => e.key, e => e.value);

正如 Binary Worrier 在评论中指出的那样,这种方法与其他答案建议的简单循环相比没有任何优势。

Edit:上面的块的较短版本是

Dictionary<string, string> ini = splitCache.ToDictionary(
                                   entry => entry.Substring(0, entry.FirstIndexOf("="),
                                   entry => entry.Substring(entry.FirstIndexOf("="));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#读取ini文件 的相关文章

  • 使用管道在父级和子级之间传递整数值

    我对如何正确使用 pipeline 在两个进程之间传递整数值有点困惑 在我的程序中 我首先创建一个管道 然后分叉它 我假设我有 两个 管道 据我了解 这是我的任务 我的父母通过 for 循环检查某个操作的整数值 i 增加计数变量 并将值保存
  • 如何从经过身份验证的 SecurityToken 中获取声明

    我将令牌作为字符串传递到 SOAP 服务中 并验证了该令牌是否有效 我现在有一个 SecurityToken 在调试模式下我可以看到所有声明 特别是我想传递到另一个方法的 userId 声明 我似乎不知道如何获得这些索赔 现在 我解码了令牌
  • CMake(Ninja 后端)使用 /MT 编译

    我有一个类似的问题CMake 使用 MT 而不是 MD 进行编译 https stackoverflow com questions 14172856 cmake compile with mt instead of md但有一些差异 我正
  • 如何在 C++ 中为指针“this”赋值

    在函数中 如何分配this一个新的价值 您可以分配对象this点于 this XY 但你不能分配直接值this this XY Error Expression is not assignable
  • 每个元素的 asp.net Web 表单自定义错误消息

    我创建了一个 Web 应用程序 表单 以及后端 SQL 插入和查询 目前我正在显示所有用户错误消息 div style padding 1em div
  • 如何以编程方式删除受信任的根证书颁发机构中的证书?

    我需要能够从组织中的每台电脑中删除特定的证书 是的 我可以逐个座位 但我要到周四才能完成 而且我没有人力逐个座位 是否有使用 C 的编程方式来执行此操作 我认为你不需要编写任何 C 看看certmgr exe del http msdn m
  • Visual Studio 2013 调试器显示 std::string 的奇怪值

    我有一个大型的 cmake 生成的解决方案 其中包含许多项目 由于某种原因 我无法查看字符串的内容 因为根据调试器 Bx Buf含有一些垃圾 text c str 正确返回 Hello 该问题不仅仅发生在本地字符串上 返回的函数std st
  • 我担心我添加了太多接口

    我正在构建我的领域模型并继续重构它 正如我所做的那样 我发现我喜欢接口 因为它允许我根据接口为具体类型创建可重用的方法 控制器 视图 但是 我发现每次向域实体之一添加新属性时 我都会创建一个接口 例如 我有一个会员状态从抽象继承的对象Ent
  • 在 C# 中解析 JS Date.toIsoString

    我需要将 JS 日期存储为 ISO 8601 日期 我目前正在从格式为 2019 06 22T00 00 00 000Z 的表单中获取日期 正如 JS 的 toIsoString 方法所期望的那样 当这个日期传递到我的 API 控制器时 我
  • 如何在 C 中链接目标文件?失败并显示“架构 x86_64 的未定义符号”

    因此 我尝试在我的文件 file2 c 中使用另一个 C file1 c 文件中定义的函数 为了做到这一点 我包含了 file1 file1 h 的标头 但是 每当我尝试使用 gcc 编译文件时 我都会收到以下错误 Undefined sy
  • 更改私有模块片段是否会导致模块重新编译?

    On 此页面有关 C 20 模块功能 https www modernescpp com index php c 20 modules private module fragment and header units 我发现了这样的说法 借
  • 当我在 PHP 中将 print_r() 应用于数组时,为什么会得到“Resource id #4”? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 在一个解决方案中调用不同项目的方法

    1 个解决方案中有 3 个项目 我对第一个项目中的主文件进行的主要操作 但是我需要调用第三个项目中的方法并使用类 例如 第三个项目有 public DataClasses1DataContext base global WindowsFor
  • 给定一个字符串,如何删除所有重复的连续字母?

    如何从字符串中删除两个连续的字母 例如 a str hii thherre 应该成为 hi there 我尝试这样做 a str join sorted set a str key a str index 但是 我得到 hi ter 是的
  • 使用未命名命名空间而不是静态命名空间

    我可以假设在未命名命名空间中声明的对象相当于static namespace int x 1 static int x 2 FWIK 在这两种情况下 x将具有静态存储期限和内部链接 声明为的对象的所有规则也是如此static适用于未命名名称
  • JavaScript - 替换 html 字符串中的特定单词索引

    我在 JS 字符串操作方面面临着一项具有挑战性的任务 有一个 HTML 字符串 我需要在其中替换特定单词索引处的单词 单词索引是忽略 HTML 标签时单词的编号 例如 下面是 HTML 字符串 span style font family
  • 在多线程环境中捕获信号

    我有一个大型程序 需要尽可能具有弹性 并且有大量线程 我需要捕获所有信号SIGBUS SIGSEGV 并在必要时重新初始化有问题的线程 或者禁用该线程以继续减少功能 我的第一个想法是做一个setjump 然后设置信号处理程序 可以记录问题
  • PHP/MySQL - 在数据库中存储数组

    我正在开发一个 PHP 应用程序 它需要将各种设置存储在数据库中 客户经常询问是否可以添加或更改 删除某些内容 这导致了表格设计出现问题 基本上 我有很多布尔字段 它们只是指示是否为特定记录启用了各种设置 为了避免再弄乱表格 我正在考虑将数
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • C++ 中的析构函数

    我的 AB h 文件中有一个构造函数 class AB private int i public AB i 0 constructor AB i 0 destructor virtual void methodA unsigned int

随机推荐

  • 使用 ORM 时跟踪数据库字段的更改

    我想跟踪对特定表中每一列所做的更改 我考虑将更改存储在另一个包含以下列的表中 id field and data where field 字符串值 是目标表中已更改的列data是该字段的新值 在返回数据集时 我想到从目标表中检索原始数据 从
  • Laravel 阻止用户访问其他用户资源 **url

    我在 url 中传递特定资源 例如 https www example com https www example com 公司ID 在控制器中我可以通过以下方式访问资源 public function index companyID Co
  • 在flutter中刷新令牌

    我正在开发一个金融项目 Flutter 其中从后端获取身份验证令牌经常过期 我怎样才能保留token只要过期用户正在使用该应用程序 我建议您可以以简单的方式处理这些事情 例如在获取数据时 如果令牌过期 您会收到 401 未经授权的异常 您可
  • 修改 iframe.src 而不进入历史对象

    我的网页中有一个 iframe 我通过 javascript 修改 src 属性 如下所示 document getElementById myiframe src http vimeo com videoid1 document getE
  • Installshield 无提示卸载在命令行中不起作用

    我们有一个 2006 年的旧应用程序 我们想使用组策略在命令行卸载 但我无法进行静默卸载 这有效 当然我需要点击下一步来卸载 C App Setup exe uninst 但事实并非如此 我看到沙漏了几秒钟 但该应用程序并未卸载 C App
  • 是否可以将 JFrame 置于前面但不获得焦点?

    我正在编写一个 Java 应用程序 Swing GUI 它会定期弹出 JFrame 是否有可能以某种方式将窗口置于前面 foo setAlwaysOnTop true 会更好 但是without有焦点吗 有些人在打字时时不时地将眼睛从屏幕上
  • 可扩展的非矩形 CSS 按钮?

    在网上进行了大量研究后 我发现了很多使用 CSS 设计提交按钮样式的建议和示例 但它们都生成了矩形按钮 我想制作一个非矩形按钮 它会自动调整自身大小以适合按钮图例 具体来说 我希望按钮看起来像这样 加上或减去圆角 有什么建议么 完全可以使用
  • 为什么我会收到“由于保护级别而无法访问”错误?

    我收到此错误 由于其保护级别 CTest A A 无法访问 编译此代码时 public class A private A public class B A public void SayHello Console WriteLine He
  • 如何子类化 QSpinBox 以便它可以将 int64 值作为最大值和最小值

    我需要实施一个QSpinBox控制应该能够处理int64值作为其最小值和最大值 目前的实现仅支持int32价值观 一天结束我的QSpinBox应该接受之间的任何值 9223372036854775807 和 9223372036854775
  • GSON disableHtmlEscaping - 为什么 GSON 默认情况下会转义 HTML?

    我注意到 GSON HTML 转义 lt and gt 字符 这可以通过使用禁用disableHtmlEscaping 构建器配置方法 但我的问题是 为什么 GSON 默认情况下会进行 HTML 转义 不进行 HTML 转义有哪些风险 Th
  • R 中的时间序列交叉验证:使用 csv() 和 tslm()-模型

    我目前正在尝试使用时间序列交叉验证来评估 tslm 模型 我想使用固定模型 不进行参数重新估计 来查看去年评估期的 1 到 3 步预测 我很难得到tsCV and tslm从预测库中可以很好地协同工作 我缺少什么 library forec
  • 如何在 robocopy 中使用 /mir /xd 开关时排除目标中的子目录

    正在运行一个脚本 它将一堆文件夹从一个卷镜像到另一个卷 问题是 现在目标文件夹中的子目录不属于原始镜像脚本的一部分 它们是独立的子目录 我不希望在镜像启动后清除它们 有没有办法让我使用 xd在 robocopy 中切换 我可以排除目标子目录
  • 如何用 Razor Pages 路由替换 MVC HomeController/Index 重定向?

    我正在从 ASP MVC Classic 迁移到 ASP Razor Pages 只剩下一个控制器需要 迁移 HomeController public class HomeController Controller UserManager
  • 日期不能是将来的 SQL

    我正在尝试添加一种约束 以防止用户将来输入日期 我需要它在用户尝试这样做时引发错误 这是我到目前为止所拥有的 Create Procedure CustomerBooks month int year int AS BEGIN SELECT
  • 在python中将文件夹中的文件复制到一个目录

    我有一个包含一些文件的文件夹 我想将其复制到一个目录 该文件夹也有一些我不想复制的文件 我知道有 os chdir 命令可以将我移动到该目录 但是 我不确定如何将我需要的文件复制到此目录中 任何帮助将不胜感激 UPDATE 这就是我现在所拥
  • 使用wiremock时连接被拒绝

    我在 Junit 中有这段代码 我明确地将端口设置为 8888 when clientUtils getLinkUrl eq HOSTELS MICROSERVICE name eq HOSTELS MICROSERVICE name an
  • 循环缓冲区的线程安全实现

    boost 库中的 Circular buffer 不是线程安全的 所以我将 boost circular buffer 对象包装在一个类中 如下所示 我认为 线程之间的互斥是通过使用条件变量 互斥锁和锁获取 释放来实现的 这个实现线程安全
  • 如何安装相关的 C++ 库以避免链接器命令失败?

    我最近尝试编译一个C 程序 但发现它给出了这个错误 Undefined symbols for architecture x86 64 std 1 locale use facet std 1 locale id const referen
  • Hibernate 左外连接

    我有这样的 Hibernate 服务方法 SELECT sc FROM SecurityContact sc WHERE sc securityId securityId2 securityId2由用户传入 每个 SecurityConta
  • C#读取ini文件

    我正在尝试读取具有以下格式的 ini 文件 SETTING VALUE SETTING2 VALUE2 我目前有以下代码 string cache sr ReadToEnd string splitCache cache Split new