将 XmlNodeList 转换为 List<string> [英] Converting XmlNodeList to List<string>
本文介绍了将 XmlNodeList 转换为 List<string>的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在不声明新的List
的情况下将XmlNodeList
转换为List
?
Is it possible to convert an XmlNodeList
to a List<string>
without declaring a new List<string>
?
我正在为此寻找一个简单的实现:
I am looking for a simple implementation for this:
System.Xml.XmlNodeList membersIdList = xmlDoc.SelectNodes("//SqlCheckBoxList/value");
List<string> memberNames = new List<string>();
foreach (System.Xml.XmlNode item in membersIdList)
{
memberNames.Add(library.GetMemberName(int.Parse(item.InnerText)));
}
推荐答案
是的,可以使用 LINQ:
Yes, it's possible using LINQ:
var memberNames = membersIdList.Cast<XmlNode>()
.Select(node => node.InnerText)
.Select(value => int.Parse(value))
.Select(id => library.GetMemberName(id))
.ToList();
Cast
调用是必要的,因为XmlNodeList
没有实现通用的IEnumerable
,所以你必须明确将其从非泛型 IEnumerable
转换为泛型集合.
Cast<XmlNode>()
call is necessary, because XmlNodeList
does not implement generic IEnumerable<T>
, so you have to explicitly convert it to generic collection from non-generic IEnumerable
.
是的,如果需要,您可以将所有 Select
调用合并为一个:
And yes, you can merge all Select
calls into one if you want:
var memberNames = membersIdList.Cast<XmlNode>()
.Select(x => library.GetMemberName(int.Parse(x.InnerText)))
.ToList();
这篇关于将 XmlNodeList 转换为 List<string>的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文