C# 如何访问对象中的列表

C# 如何访问对象中的列表,c#,list,oop,C#,List,Oop,如何读取从H_N1_N1调用的H_N1_N2、H_N1_N3、H_N1_N4中的值 我的目标是将所有值放入包含另一个对象的列表中 要求是在验证之前消除将值存储到数据库临时表中的当前进程。验证后,它进入物理表 以下是我的实体: public class H_N1_N1 { public string N101_EntityIdentifierCode { get; set; } public string N102_Name { get; set; } public str

如何读取从H_N1_N1调用的H_N1_N2、H_N1_N3、H_N1_N4中的值

我的目标是将所有值放入包含另一个对象的列表中

要求是在验证之前消除将值存储到数据库临时表中的当前进程。验证后,它进入物理表

以下是我的实体:

public class H_N1_N1
{
    public string N101_EntityIdentifierCode { get; set; }
    public string N102_Name { get; set; }
    public string N103_IdentificationCodeQualifier { get; set; }
    public string N104_IdentificationCode { get; set; }

    public H_N1_N1()
    {
        ListH_N1_N2 = new List<H_N1_N2>();
        ListH_N1_N3 = new List<H_N1_N3>();
        ListH_N1_N4 = new List<H_N1_N4>();
    }

    public List<H_N1_N2> ListH_N1_N2 { get; set; }
    public List<H_N1_N3> ListH_N1_N3 { get; set; }
    public List<H_N1_N4> ListH_N1_N4 { get; set; }
}

public class H_N1_N2
{
    public string N201_Name01 { get; set; }
    public string N202_Name02 { get; set; }
}

public class H_N1_N3
{
    public string N301_AddressInformation01 { get; set; }
    public string N302_AddressInformation02 { get; set; }
}

public class H_N1_N4
{
    public string N401_CityName { get; set; }
    public string N402_StateProvinceCode { get; set; }
    public string N403_PostalCode { get; set; }
    public string N404_CountryCode { get; set; }
}
这就是我想做的: N1_一些数据 N1_一些数据 N1_一些数据 N1_一些数据 N2_一些数据 N2_一些数据 N3_一些数据 N3_一些数据 N4_一些数据 N4_一些数据 N4_一些数据 N4_一些数据

N1_一些数据 N1_一些数据 N1_一些数据 N1_一些数据 N2_一些数据 N2_一些数据 N3_一些数据 N3_一些数据 N4_一些数据 N4_一些数据 N4_一些数据 N4_一些数据

N1_一些数据 N1_一些数据 N1_一些数据 N1_一些数据 N2_一些数据 N2_一些数据 N3_一些数据 N3_一些数据 N4_一些数据 N4_一些数据 N4_一些数据 N4_一些数据


提前谢谢

OP,这段代码让我想为小孩子哭泣,但你出错的原因是你在
MessageBox.Show()调用中放置了4个单独的变量,而没有将它们绑定在一起

更新

根据你的评论,

当我尝试键入oH_N1_N1.ListH_N1_N2时,没有N201_Name01和N201_Name02

这是因为
oH\u N1\u N1.ListH\u N1\u N2
是一个
List
属性。您无法通过这种方式访问H_N1_N2的属性。您必须通过列表进行访问,例如使用索引器:

oH_N1_N1.ListH_N1_N2[0].N201_Name01
您还可以执行
foreach
以获取所有元素

string crazyNames = string.Empty;
foreach(var crazyName in oH_N1_N1.ListH_N1_N2)
{
    crazyNames += crazyName.N201_Name01 + " " + N201_Name02 // etc.
}
请注意上面的
[0]
,它是列表中的第一个元素。现在,intellisense将向您显示存储对象的可用属性,它是
H_N1_N2
的一个实例,并将包含属性
N201_Name01
,依此类推


原始问题/答案:

在那里添加+标志,它就会起作用

出于对人类的热爱,请使用一些不同的命名约定

foreach (var oH_N1_N1 in objH_N1_N1)
{   
    MessageBox.Show(
        // Print N1
        oH_N1_N1.N101_EntityIdentifierCode
        + "\n" + oH_N1_N1.N102_Name
        + "\n" + oH_N1_N1.N103_IdentificationCodeQualifier
        + "\n" + oH_N1_N1.N104_IdentificationCode

            + // concatenate next object to first one 

        // Print N2
        oH_N1_N1.ListH_N1_N2.N201_Name01 //ERROR HERE
        +"\n" + oH_N1_N1.ListH_N1_N2.N201_Name02 //ERROR HERE

            + // concatenate next object to first+second one 

        // Print N3
        oH_N1_N1.ListH_N1_N3.N301_AddressInformation01 //ERROR HERE
        +"\n" + oH_N1_N1.ListH_N1_N3.N301_AddressInformation02 //ERROR HERE

            + // concatenate last object to first+second+third one 

        // Print N4
        oH_N1_N1.ListH_N1_N4.N401_CityName //ERROR HERE
        +"\n" + oH_N1_N1.ListH_N1_N4.N402_StateProvinceCode //ERROR HERE
        +"\n" + oH_N1_N1.ListH_N1_N4.N403_PostalCode //ERROR HERE
        +"\n" + oH_N1_N1.ListH_N1_N4.N404_CountryCode //ERROR HERE
    );
}

我不知道你想干什么。你能给出你的变量的专有名称吗?它们看起来都一样……我不确定这是否是一个巨魔问题,但我肯定不知道海报想问什么。我不敢相信你用眼睛去寻找它。@SimonWhitehead:哈哈,找回丢失的脑细胞需要一些时间,但嘿,这就是我们为了帮助别人而牺牲的东西!大家好,很抱歉命名规则不好。。但是。。当我尝试键入oH_N1_N1.ListH_N1_N2时,即使我在实体层中将修饰符设置为public,其中也没有N201_Name01和N201_Name02。。有什么想法吗?@devkiat:根据你的评论,看看我最新的答案。尽管很痛苦,我还是解决了你的问题。谢谢你,大卫。这就解决了我的问题
string crazyNames = string.Empty;
foreach(var crazyName in oH_N1_N1.ListH_N1_N2)
{
    crazyNames += crazyName.N201_Name01 + " " + N201_Name02 // etc.
}
foreach (var oH_N1_N1 in objH_N1_N1)
{   
    MessageBox.Show(
        // Print N1
        oH_N1_N1.N101_EntityIdentifierCode
        + "\n" + oH_N1_N1.N102_Name
        + "\n" + oH_N1_N1.N103_IdentificationCodeQualifier
        + "\n" + oH_N1_N1.N104_IdentificationCode

            + // concatenate next object to first one 

        // Print N2
        oH_N1_N1.ListH_N1_N2.N201_Name01 //ERROR HERE
        +"\n" + oH_N1_N1.ListH_N1_N2.N201_Name02 //ERROR HERE

            + // concatenate next object to first+second one 

        // Print N3
        oH_N1_N1.ListH_N1_N3.N301_AddressInformation01 //ERROR HERE
        +"\n" + oH_N1_N1.ListH_N1_N3.N301_AddressInformation02 //ERROR HERE

            + // concatenate last object to first+second+third one 

        // Print N4
        oH_N1_N1.ListH_N1_N4.N401_CityName //ERROR HERE
        +"\n" + oH_N1_N1.ListH_N1_N4.N402_StateProvinceCode //ERROR HERE
        +"\n" + oH_N1_N1.ListH_N1_N4.N403_PostalCode //ERROR HERE
        +"\n" + oH_N1_N1.ListH_N1_N4.N404_CountryCode //ERROR HERE
    );
}