使用 linq 解析样式属性集合

2024-01-12

我想解析 SVG 样式属性,它只是一个分隔字符串,例如

“填充:#e2b126;描边:#010101;描边宽度:0.3177;描边斜接限制:10”

into a Dictionary<string,string>这样我就可以对其进行一些处理。

这是我所拥有的,它可以完成这项工作,但我想使用 linq 投影使其更整洁,只是似乎无法获取语法。我尝试使用 .Select().ToDictionary 等,但没有乐趣。谢谢:

string attributes = "fill:#e2b126;stroke:#010101;stroke-width:0.3177;stroke-miterlimit:10";
var pairs = attributes.Split(';').ToList();
var dic = new Dictionary<string, string>();
pairs.ForEach(p =>
    {
        var pair = p.Split(':');
        dic.Add(pair[0], pair[1]);
    });
 foreach (var k in dic.Keys)
 {
       Console.WriteLine(k + " " + dic[k]);
 }

预期输出:

fill #e2b126 
stroke #010101 
stroke-width 0.3177 
stroke-miterlimit 10

尝试以下操作

string attributes = "fill:#e2b126;stroke:#010101;stroke-width:0.3177;stroke-miterlimit:10";
var map = attributes
  .Split(new []{';'}, StringSplitOptions.RemoveEmptyEntries)
  .Select(x => x.Split(new []{':'}, StringSplitOptions.RemoveEmptyEntries))
  .ToDictionary(p => p[0], p => p[1]);

分解

首先Split调用将返回一个数组String每个条目所在的值key:value格式。下列Select调用会将这些条目中的每一个转换为string[]其中第一个元素是键,第二个元素是值。这ToDictionary调用只是明确执行此映射

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

使用 linq 解析样式属性集合 的相关文章

  • 为什么 new String("Hello") 在 C# 中无效?

    制作背后的逻辑 原因是什么 String s new String Hello World 在 C 中非法 错误是 string String char 的最佳重载方法匹配有一些无效参数 我对 API 文档不感兴趣 我感兴趣的是为什么这是非
  • 使用 Doxygen 记录 C++ 中的宏函数

    如何使用 Doxygen 在 C 中记录宏函数 并在我的非 Evil 代码的文档中引用它 更具体地说 我在 Message H 中定义了一些名为 Message 的常规类 用户可以继承该类来定义自己的消息 在另一个文件 MessageHel
  • 创建一个重复 char n 次的编译时字符串

    我正在使用这样的函数将数据导出到 xml 文件中 注意 愚蠢的示例 void write xml file const std string path using namespace std string view literals Use
  • 如何使用 google test for C++ 来运行数据组合

    我有一个单元测试 需要针对 200 种可能的数据组合运行 生产实现在配置文件中有要测试的数据 我知道如何模拟这些值 我更喜欢为每个组合编写单独的测试用例 并使用某种方式循环数据 有没有使用 Google test for C 的直接方法 您
  • 当从字符串文字初始化 char 数组时会发生什么?

    据我了解 以下代码的工作原理如下 char cptr Hello World Hello World 住在 rodata程序内存的一部分 字符串文字 Hello World 返回一个指向字符串基地址的指针 或者所谓 数组 中第一个元素的地址
  • 如何重新解释或转换具有已知内存布局的对象而不出现未定义的行为

    我有一个矩阵类transposedView 我多年来一直使用该方法作为行向量和列向量之间的 零开销 转换 template
  • 将 C++ 连接到 C#

    我一直在用 C 编写一个程序 注意到 C 中有一个库 别人写的 我想链接到我的代码 但我不知道该怎么做 有人可以提出建议吗 怀疑这很重要 但我正在使用带有 MSVC2010 的 Windows 7 提前致谢 您可以尝试在 C CLI 模式下
  • 通过单击内部小部件而不是标题栏来移动窗口

    在 Windows 中 当我创建 QMainWindow 时 我可以通过单击标题栏并拖动它来在屏幕上移动它 在我的应用程序中 我使用隐藏了标题栏setWindowFlags Qt CustomizeWindowHint 我正在尝试使用小部件
  • c中的奇异值分解简单代码

    我正在寻找 C 语言的奇异值分解 SVD 代码 你能帮我吗 我找到了很多来源 但我无法运行它们 我正在寻找一个为我提供 S V 和 U 3 个矩阵的 SVD 代码版本 您可以使用数字食谱代码svdcmp c 参考 http tumic wz
  • 如何在 C++ 中将向量迭代器转换为 int

    我正在寻找 C 向量中的一个元素 当我找到它时 我想以数字形式 整数 浮点数 获取找到的元素的索引 我天真的尝试是这样的 int x int index vector
  • C# 和匿名对象数组

    这样的表达是什么意思呢 obj DataSource new new Text Silverlight Count 10 Link Tags Silverlight new Text IIS 7 Count 11 Link http iis
  • Wpf TextBlock 中的垂直文本

    是否可以垂直显示 TextBlock 中的文本 以便所有字母彼此堆叠 不使用 LayoutTransform 旋转 还没有人提到使用纯 XAML 垂直堆叠任意字符串的字母 不旋转它们 的明显而简单的方法
  • NHibernate 中的无状态会话初始化关联实体或集合失败

    我正在尝试与第 3 方 dll 中的实体建立关联 由于某些原因 我必须使用StatelessSession With StatefullSession它可以工作 但不适用于无状态 这个想法是允许第三方添加一个表并在我查询主表时获取其数据 我
  • Java 中等效的并行扩展

    我在 Net 开发中使用并行扩展有一些经验 但我正在考虑在 Java 中做一些工作 这些工作将受益于易于使用的并行库 JVM 是否提供任何与并行扩展类似的工具 您应该熟悉java util concurrent http java sun
  • 英特尔 SSE:为什么 `_mm_extract_ps` 返回 `int` 而不是 `float`?

    为什么 mm extract ps返回一个int代替float 读单的正确方法是什么float来自 C 中的 XMM 寄存器 或者更确切地说 另一种询问方式是 其相反的是什么 mm set ps操作说明 所有答案似乎都没有真正回答问题 wh
  • 自定义代码访问安全属性

    我创建了以下属性 Serializable AttributeUsage AttributeTargets Class AttributeTargets Method AllowMultiple true Inherited true pu
  • Windows 7 任务栏:捕获缩略图

    是否可以从 Win7 任务栏捕获 实时 缩略图 我想在我的应用程序中显示 另一个窗口的 预览 但如何使用 NET 提取这些预览 Yes MSDN 杂志解释了如何 http msdn microsoft com en us magazine
  • ISO C++ 草案 (n3290) 中的一点:3.4.3.2/1 命名空间成员

    ISO C 草案 n3290 中的一点 3 4 3 2 1 命名空间成员 如果限定 ID 的嵌套名称说明符指定命名空间 在嵌套名称说明符之后指定的名称在中查找 命名空间的范围 如果限定 ID 以 开头 则 在全局命名空间中查找 之后的名称
  • C# OpenFileDialog 中的 Stackoverflow/CLR 错误

    下面的代码是我的悲伤示例之一 三个 这是一个简单的 OpenFileDialog 调用 会导致程序崩溃 在 XP 上 如果对话框保持打开状态几秒钟 就会发生崩溃 在 Vista 上 如果用户选择 我的电脑 则会发生崩溃 在VS2008中 调
  • 为什么 -1 >> 1 和 0xFFFFFFFF >> 1 会产生不同的结果?

    我正在尝试做一个测试来判断我的电脑是否通过右移十六进制执行算术右移或逻辑右移FFFFFFFF by 1 我知道一个整数 1读作FFFFFFFF十六进制 因为它是二进制补码1 右移 1 by 1结果是FFFFFFFF并显示 PC 执行算术右移

随机推荐

  • 析构函数中使用可能指向或不指向有效对象的指针的回调的正确设计模式是什么?

    假设我们有以下场景 我们有一个ImageManager类用于内部存储和管理图像数据 这ImageManager类有一个公共成员populateImage 它将把图像读入内存 然后返回一个填充的MyImage这是一个std shared pt
  • 如何使用 LINQ 将 List 与数据库表进行比较

    我有一个电话号码列表 我试图将其与数据库表中的相应记录连接起来 并获取订单号和客户 ID 此外 该列表将整个号码作为一个字符串 而数据库将其分解为区号 前缀 号码 每个都作为单独的字段 我对 LINQ 相当陌生 所以这超出了我目前的了解 非
  • 你可以使用集会 API 发送电子邮件通知吗?

    我正在构建一个自定义拉力应用程序 我需要从中发送电子邮件通知 有没有办法使用 Rally API 发送电子邮件 所以我不必使用像 Mandrill 或 Mailjet 这样的第三方服务 谢谢 无法通过 Rally API 来执行此操作
  • sqlite3 Nodejs从表中获取值

    我的 db js 中有 getName 函数 function getName uid db all SELECT name FROM table WHERE uid function err if err console log err
  • 使用 VB.NET 将父节点添加到已存在的 XML 文件中

    我有如下 XML
  • 作为期限或值计算结果的返回类型

    我试图很好地掌握种类 类型和术语 或值 不确定哪个是正确的 以及用于操作它们的 GHC 扩展 我知道我们可以使用 TypeFamilies 来编写带有类型的函数 现在我们还可以使用 DataKinds PolyKinds 等在某种程度上操作
  • 如果我想在 React 中使用像 AOS 这样的 javascript 库,该怎么做?

    我想使用 JavaScript 库 AOS https michalsnik github io aos https michalsnik github io aos 在我的 React 应用程序中 如何将其包含在我的 App js 文件中
  • javascript多维对象

    我正在尝试使用以下代码在 JavaScript 中定义一个多维对象 function A one two this one one this inner two two A prototype one undefined inner two
  • 同一页面上有两个 jQuery 版本

    是否可以在同一个文档中拥有 2 个不同的 jQuery 版本 并且让它们不会相互冲突 例如 如果我创建一个小书签并希望将代码基于 jQuery 这个小书签被注入到使用另一个版本的 jQuery 的某个页面上 然后我的代码将覆盖该页面上使用的
  • HTML5 浏览器兼容性图表 - 旧浏览器中的 HTML5?

    我刚刚开始考虑在 Rails JQuery 项目中使用 HTML 5 api 所以我可以使用这个很棒的data 属性 http ejohn org blog html 5 data attributes 来存储值 但我担心浏览器兼容性问题
  • HTML5 异步属性对脚本元素到底有什么好处?

    我对 HTML5 中 script 元素的新 async 属性有些困惑 希望有人能给出明确的答案 浏览器能够并行连接 因此图像将并行下载 但任何外部 javascript 都不会与其他外部 javascript 和图像并行下载 脚本会阻止页
  • 如何使用 URL 调用 Web 服务并传递参数

    如何使用 URL 调用 ASP NET Web 服务并传递参数 例如 服务的 URL 类似于 http localhost 31856 MySystem MyAPI asmx op getHeight 我需要传递两个参数a和b 我尝试过 h
  • Android Studio 布局编辑器不显示任何建议

    我创建了新的 XML 文件temp xml 当我尝试在其中添加文本视图时 没有向我显示任何建议 当我单击 TextView 时 添加的 TextView 没有正文 然后我从其他文件复制粘贴一些代码 并尝试向 TextView 编辑器提供大小
  • 加载规则“jsx-a11y/alt-text”时出错:rule.create 不是函数

    我刚刚用过npx create react app my app启动一个项目并在运行时npm start我收到这个编译错误 Error while loading rule jsx a11y alt text rule create is
  • UTF8 到 php 中的等效数字

    我一直在寻找我的 试图找到一个 PHP 函数来将 UTF8 转换为等效的数字 我不完全确定如何称呼这个数字 我听说它被称为纵坐标 但这里有一个例子 http jrgraphix net r Unicode 3040 309F http jr
  • 继承最派生类型的抽象类

    不幸的是 我找不到导致我提出这个问题的原始项目 这也许会给这个问题更多的背景 EDIT 我找到了我在其中看到的原始项目 http mews codeplex com SourceControl changeset view 63120 10
  • SAP Hana 开发中的 OData 与 XSJS

    我正在使用 SAP Hana studio 开发一个应用程序 我对为什么要使用 XSODATA 以及为什么要使用 XSJS 感到困惑 为什么我不能仅使用 XSODATA 文件来执行所有数据库事务 我知道 XSJS 是服务器端的 但如果我正在
  • HQL“包含”声明如何?

    我有一个实体 它有一个名为 标签 的字符串属性 我想根据某个字符串是否位于 Tags 属性中来查询该实体 例如 我有一个函数 IList GetEntityByTag string tag 这将返回 Tags 属性中具有标签值的所有实体 我
  • github markdown colspan

    有没有办法有 colspan on github 降价 我正在尝试创建一个表格 其中一行占据四列 One Two Three Four One Two Three Four One Two Three Four
  • 使用 linq 解析样式属性集合

    我想解析 SVG 样式属性 它只是一个分隔字符串 例如 填充 e2b126 描边 010101 描边宽度 0 3177 描边斜接限制 10 into a Dictionary