C# 我可以访问具有该集合集合的类吗?

C# 我可以访问具有该集合集合的类吗?,c#,collections,C#,Collections,我有一个拥有B类集合的a类。是否可以从该集合中的B类实例访问a类 Class A { public string Something { get; set; } List<B> collection = new List<b>(); public void Add(B b) { collection.Add(b); } } Class B { public int Num { get; set; } }

我有一个拥有B类集合的a类。是否可以从该集合中的B类实例访问a类

Class A
{
    public string Something { get; set; }
    List<B> collection = new List<b>();
    public void Add(B b)
    {
        collection.Add(b);
    }
}

Class B
{
    public int Num { get; set; }
}

static void Main(string[] args)
{
    B b = new B();
    b.Num = 5;

    A a = new A();
    a.Something = "Hello";
    a.Add(b);
}
A类
{
公共字符串Something{get;set;}
列表集合=新列表();
公共无效添加(B)
{
收藏。添加(b);
}
}
B类
{
公共int Num{get;set;}
}
静态void Main(字符串[]参数)
{
B=新的B();
b、 Num=5;
A=新的A();
a、 Something=“你好”;
a、 添加(b);
}

有没有办法访问字符串a。对象b中的某些内容?

有没有办法访问字符串a。对象b中的某些内容?


不可以。

通过以下更改,这是可能的;但请注意,这毫无意义

Class A
{
    public string Something { get; set; }
    List<B> collection = new List<b>();
    public void Add(B b)
    {
        b.Master = this;
        collection.Add(b);        
    }
}

Class B
{
    public A Master {get; set;}
    public int Num { get; set; }
}

static void Main(string[] args)
{
    B b = new B();
    b.Num = 5;

    A a = new A();
    a.Something = "Hello";
    a.Add(b);
    Console.Writeline(b.Master.Something);
}
A类
{
公共字符串Something{get;set;}
列表集合=新列表();
公共无效添加(B)
{
b、 主人=这个;
收藏。添加(b);
}
}
B类
{
公共主机{get;set;}
公共int Num{get;set;}
}
静态void Main(字符串[]参数)
{
B=新的B();
b、 Num=5;
A=新的A();
a、 Something=“你好”;
a、 添加(b);
控制台。写线(b。Master。某物);
}

B需要包含对其容器A的引用。例如:

Class B
{
    public int Num { get; set; }
    public A Container { get; set; }
}
然后在中的Add()方法中:

public void Add(B b)
{
        collection.Add(b);
        b.Container = this;
}

这是假设B只能添加到A的单个实例中。否则,您需要使用集合(如列表),并在添加/删除时相应地更新它。

为什么要这样做?我也首先考虑了这个解决方案,但它有很大的缺陷。考虑创建两个<>代码> 对象,并将其中的一个代码< > b>代码>对象添加到其中。在这种情况下,
B
将只引用最后添加的代码。因此,您要么需要拥有
列表主控程序
,要么重新考虑应用程序的设计,并从
A
访问
内容。我甚至没有涉及到删除
B
scenario我没有投反对票,但尽管有他们自己所描述的问题,这个问题还是有解决方案的。