小编tlo*_*ess的帖子

嵌套的foreach循环读取.xml并将对象写入列表

我有一个方法,在form_load事件上执行,似乎正常工作省略一行.

private int ReadInPeople()
{
    XmlNodeList nodeList = m_xmlDoc.DocumentElement.ChildNodes;
    foreach (XmlNode PersonNode in nodeList)
    {
        Employee ccontact = new Employee();
        foreach (XmlNode PersonTag in PersonNode.ChildNodes)
        {
            switch (PersonTag.Name)
            {
                case "Employee":
                    ccontact.EmployeeNumber = PersonTag.FirstChild.Value;
                    break;
                case "FirstName":
                    ccontact.FirstName = PersonTag.FirstChild.Value;
                    break;
                case "LastName":
                    ccontact.LastName = PersonTag.FirstChild.Value;
                    break;
                default:
                    break;
            }
        }
        this.AddContact(ccontact);
    }
    return nodeList.Count;
}
Run Code Online (Sandbox Code Playgroud)

AddContact方法将Employee对象添加到静态列表中; 但是,这条线:

this.AddContact(ccontact);
Run Code Online (Sandbox Code Playgroud)

没被执行.

XML文件的示例:

<?xml version="1.0" encoding="utf-8"?>
<people>
  <person>
    <Employee>123456789</Employee>
    <FirstName>John</FirstName>
    <LastName>Smith</LastName>
  </person>
  <person>
    <Employee>987654321</Employee>
    <FirstName>Ellen</FirstName>
    <LastName>Wayne</LastName>
  </person>
</people>
Run Code Online (Sandbox Code Playgroud)

我曾尝试设置一个断点和调试,果然,线路被完全跳过,好像它甚至没有.

根据Alan的建议,我改变了PersonTag.FirstChild.Value,因为它试图引用一个不存在的ChildNode.

更新的工作方法:

private …
Run Code Online (Sandbox Code Playgroud)

c# xml debugging foreach

5
推荐指数
1
解决办法
2986
查看次数

如何检查列表中的实例对象属性是否等于值

我有从这个类创建的任意数量的对象:

class Person:
    def __init__(self, name, email):
        self.name = name
        self.email = email
Run Code Online (Sandbox Code Playgroud)

我有这些对象的列表:

myList = []
JohnDoe = Person("John Doe", "jdoe@email.com")
BobbyMcfry = Person("Bobby Mcfry", "bmcfry@email.com")
WardWilkens = Person("Ward Wilkens", "wwilkens@email.com")
myList.append(JohnDoe)
myList.append(BobbyMcfry)
myList.append(WardWilkens)
Run Code Online (Sandbox Code Playgroud)

我想检查某人是否存在,如果存在,则返回其属性 - 如果不存在,请说:

x = input("Who to check for? ")
for i in myList:
    if i.name == x:
        print("Name: {0}\nEmail: {1}".format(i.name, i.email))
    else:
        print("{0} is not on the manifest.".format(x))
Run Code Online (Sandbox Code Playgroud)

这种工作,但为myList中的每个人返回一个或另一个 - 我只想要一个返回...

我意识到我需要做某种事情

if val in myList:....
Run Code Online (Sandbox Code Playgroud)

但我很难说如何在没有遍历每个对象的情况下说出"val"应该是什么

python

0
推荐指数
1
解决办法
677
查看次数

标签 统计

c# ×1

debugging ×1

foreach ×1

python ×1

xml ×1