【发布时间】:2019-03-19 22:07:45
【问题描述】:
我正在努力思考如何解决这个问题: 我目前正在浏览一个包含引用的“buildingObjects”列表,以及另一个包含“ObjectId”的“assets”列表。
var typeBuildingPart = new List<IfcBuildingPart> {
new IfcBuildingPart{
BIMId = "iojeofhwofh308ry308hi32r08yrh",
Reference = "234",
Assets = new List<IfcAsset> {
new IfcAsset{
ObjectID = 6111838616,
}
}
},
new IfcBuildingPart{
Reference = "235",
Assets = new List<IfcAsset> {
new IfcAsset{
ObjectID = 6111838616,
}
}
},
new IfcBuildingPart{
Reference = "235",
Assets = new List<IfcAsset> {
new IfcAsset{
ObjectID = 6111838616,
}
}
},
};
目标是遍历引用和 objectId 以检查是否存在 objectId 可能具有不同引用的任何实例(如代码 sn-p 所示,其中资产的 objectID 相同,但它们没有相同的引用,然后最后保留被引用最多的引用。 我试着做多个for循环,但最终失败了。有没有什么好的 linq 方法可以解决这个问题,或者任何指针? 谢谢!
应该有不止一种资产,但我只为每个建筑部分选择了一种来演示 ObjectId 问题
最终的结果应该是删除了引用为 234 的 ifcasset。
【问题讨论】:
-
显示你的一些代码。否则,我们将不得不猜测您是如何尝试实施或为您实施的,这对您自己的教育不利。可以用多个for循环或者LINQ来完成,没关系。
-
每个
IfcBuildingPart总是只有一个IfcAsset吗?如果是这样,为什么要列出它们?如果没有,如果有多个会发生什么? -
" 然后最后保留被引用最多的引用",愿我们有一个具有预期结果的minimal reproducible example。在您的示例中,不清楚您想要的女巫参考,因为每个
IfcBuildingPart都有相同的Assets。 -
通常有一个大的 IfcAssets 列表,其中有多个 objectId,上面的代码只是为了说明我想要做什么。
-
在这个例子中我只是想删除以 234 作为参考的资产
标签: c# list linq object for-loop