基本上,我是使用Revit (土木工程三维建模程序)与C#相结合。
在本例中,我需要使用元素的名称填充WPF列表框。为此,我使用LINQ如下:
beamTypes = new FilteredElementCollector(doc)
.OfCategory(BuiltInCategory.OST_StructuralFraming)
.OfClass(typeof(FamilyInstance))
.Select(x => x.get_Parameter(BuiltInParameter.ALL_MODEL_MARK) as Parameter).AsString())
.Distinct();如果每个元素都有一个标记,它就像一个魅力,这是我的服装设计师使用的定制名称。但是,并不是每个元素都有一个已定义的标记,如果没有,我想选择Element.Name。
会是这样的:
.Select(x => (x.get_Parameter(BuiltInParameter.ALL_MODEL_MARK) as Parameter).AsString().Equals("") ? x.Name : (x.get_Parameter(BuiltInParameter.ALL_MODEL_MARK) as Parameter).AsString())如何正确地使用LINQ .Select中的三元?
发布于 2022-01-26 17:22:30
听起来这应该适用于你
.Select(x => {
if (x.get_Parameter(BuiltInParameter.ALL_MODEL_MARK) is Parameter _param)
return _param.AsString();
return x.Name;
})https://stackoverflow.com/questions/70867549
复制相似问题