c# – 使用LINQ将字符串拆分为元组?

给定像“name:Dave”之类的字符串,我想将其转换为元组< string,string>有没有一种巧妙的方法来使用LINQ进行内联,而不是首先获取数组然后解析它?

我正在从我的app.config文件中解析一些配置数据,如下所示:

<Data>
  <add key="John" value="instrument:guitar"/>
  <add key="Paul" value="instrument:bass"/>
  <add key="George" value="instrument:guitar"/>
  <add key="Ringo" value="instrument:drums"/>
</Data>

我要将其转换为字典< string,tuple< string,string>> (我知道这是一个奇怪的数据结构!)

从一些代码开始:

var x = ((ConfigurationManager.GetSection("Data") as Hashtable))
                .Cast<System.Collections.DictionaryEntry>()
                .ToDictionary(n => n.Key.ToString(),n => something(n.Value.ToString().Split(':')));

我想知道是否有一种简洁的LINQ方式在线执行此操作而不是编写一个实用程序函数来从String.Split的数组中获取单个元组

解决方法

var source = new Dictionary<string,string>(){ { "John","instrument:guitar" } };
var tuple = source.Select(x => new { key = x.Key,values = x.Value.Split(':') }).Select(y => new Tuple<string,string>(y.key,y.values[1])).ToList();

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...