首先,对术语不正确表示歉意。我有一个像这样的构造函数:
public class A
{
public int B { get; set; }
public ICollection<C> C { get; set; }
}
public class C
{
public int D { get; set; }
}
我正在尝试像这样访问有关D的信息:
List<A> listA = New List<A>;
if (listA != null)
{
foreach (var temp in listA)
{
if (temp.C.D.contains(123)) --> got an error here
{
}
}
}
如何获取有关D的信息?
答案 0 :(得分:3)
C是对象的集合,您需要再次循环才能访问C。
List<A> listA = new List<A>;
if (listA != null)
{
foreach (var temp in listA)
{
foreach(var d in temp.C)
{
//ToDo Interact with d.D
}
}
}
答案 1 :(得分:0)
PWT的答案很好,但是如果您确实想做一行if
语句,则可以使用System.Linq来完成。这样得出的结果与您在问题中试图达到的结果相同。
List<A> listA = new List<A>();
if (listA != null)
{
foreach (var temp in listA)
{
if (temp.C.Any(c => c.D == 123))
{
// todo your logic
}
}
}