我有嵌套类,即
订购
ID, (GUID = 8e6e48f7-9047-4e2a-95e7-ec4318641fbb)
Date
Orders -> List<OrderItem>
OrderItem的
ID, (GUID= = 4582234b-d8b5-4665-b00f-e4f09ff3e2c6)
ProductId
Qty
Unit
Price
ID, (GUID= = b0d12322-e92c-42c6-b2b7-520db1d3a818)
ProductId
Qty
Unit
Price
因为我有筑巢和我使用的GUID作为标识为我的目标,我想知道是否有找给定GUID对象的通用方法。 我有这个对象,然后我可以从它的父列表中删除。
顺便说一句,我也知道我可以使用特定的lambda表达式来获得在特定的对象,但是这将导致许多表达式许多不同的情况,在一个通用的方法,因此很多的兴趣。
谢谢,
我可能会创造我所有的类(或基类)的将实现所谓的接口IGuidSearchable
或类似的东西。 这将需要设置两个属性,ID和一个Children
的收集List<ISearchable>
在实现类既可以使用这或将负责设置该属性等于他们所使用的属性(如Orders -> List<OrderItem>
在你的例子)。
public static IGuidSearchable FindObjectByGuid(this IGuidSearchable source, System.Guid guid)
{
if (source.ID.Equals(guid))
{
return source;
}
foreach (ISearchable child in source.Children)
{
if (child.FindObjectByGuid(guid) != null)
return child;
}
return null; // Fall through
}
文章来源: Is it possible to find(generically) an object with a GUID in a nested Class in C#?