【发布时间】:2020-03-07 15:16:19
【问题描述】:
我的英语不好。所以我厌倦了用数组中的每个项目写 if 条件。这个有什么解决办法。谢谢你的帮助 这段代码累死我了,怎么办呢
public bool AllowElement(Element element)// element is object by mouse houver on Revit program
{
BuiltInCategory[] BIC = new BuiltInCategory[]{Frame, Column, Slab,Foundation, etc...}// BIC is
in enum, and this is declare with params key word
if( ele == (int)BIC.Frame || ele == (int)BIC.Column ||
ele == (int)BIC.Slab || ele == (int)BIC.Foundation ||
ele == (int)BIC.etc....)
{
return true
}
}
结束我写的这段代码,但我觉得它不是真的
public bool AllowElement(Element element)
{
int ele = element.Category.Id.IntegerValue;
foreach (var item in BIC)
{
if (ele == (int)item)
return true;
}
return false;
}
【问题讨论】:
-
很难根据您的样本来判断您的要求,您可以尝试 Exists、IndexOf、数组或者如果它是一个枚举而不是 IsDefined
-
但是如何将条件嵌套到数组中呢?
-
这能回答你的问题吗? Value is in enum list
-
如果列表中的任何条目与您指定的条件匹配,您可以使用
.Any返回布尔值。 -
更改您发布的第二个代码。如果
BIC是一个枚举,那么试试if (Enum.IsDefined(typeof(BIC), ele)) { return true; }
标签: c#