编程语言
首页 > 编程语言> > c# – 使用Linq创建一个字典

c# – 使用Linq创建一个字典

作者:互联网

如何使用Linq创建一个Dictionary(甚至更好,一个ConcurrentDictionary)?

例如,如果我有以下XML

<students>
    <student name="fred" address="home" avg="70" />
    <student name="wilma" address="home, HM" avg="88" />
    .
    . (more <student> blocks)
    .
</students>

加载到XDocument doc;并希望填充ConcurrentDictionary< string,Info> (其中关键是名称和信息是一些持有地址和平均值的类.填充信息现在不是我的关注),我该怎么做?

解决方法:

XDocument xDoc = XDocument.Parse(xml);
var dict = xDoc.Descendants("student")
                .ToDictionary(x => x.Attribute("name").Value, 
                              x => new Info{ 
                                  Addr=x.Attribute("address").Value,
                                  Avg = x.Attribute("avg").Value });


var cDict = new ConcurrentDictionary<string, Info>(dict);

标签:c,dictionary,linq,concurrentdictionary
来源: https://codeday.me/bug/20190715/1469079.html