将XmlNodeList转换为List <string>

Mor*_*ich 16 c# xml string

是否可以将XmlNodeList转换为List?没有声明一个新的List我正在寻找一个简单的实现:

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)));
    }
Run Code Online (Sandbox Code Playgroud)

Mar*_*zek 33

是的,可以使用LINQ:

var memberNames = membersIdList.Cast<XmlNode>()
                               .Select(node => node.InnerText)
                               .Select(value => int.Parse(value))
                               .Select(id => library.GetMemberName(id))
                               .ToList();
Run Code Online (Sandbox Code Playgroud)

Cast<XmlNode>()调用是必要的,因为XmlNodeList没有实现泛型IEnumerable<T>,所以你必须显式地将它从非泛型转换为泛型集合IEnumerable.

是的,Select如果您愿意,可以将所有呼叫合并为一个:

var memberNames = membersIdList.Cast<XmlNode>()
                               .Select(x => library.GetMemberName(int.Parse(x.InnerText)))
                               .ToList();
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,“图书馆”是什么? (2认同)