【发布时间】:2023-03-31 21:09:01
【问题描述】:
我想在此处添加一个条件以仅获取类型!= Int。
List<IMyLayouts> list = query.GetType().
GetProperties(BindingFlags.Public).
Select(l => (IMyLayouts)l.GetValue(query, null)).ToList();
但是
.Where(l => (IMyLayouts)l.GetTYpe() != typeof(int)
它不起作用,我在互联网上搜索它但我找不到任何东西:|
【问题讨论】:
-
您确定上一个
.Where语句中的所有类型都可以转换为IMyLayouts吗?为什么在尝试输入 check vsint时会进行这种转换? -
1)
.优先于演员阵容,所以您将l.GetTYpe()(GetTYpe是什么?)转换为IMyLayouts-GetTYpe是否返回将转换的内容? 2)您正在将IMyLayouts与typeof(int)进行比较,但这永远无法匹配 -IMyLayouts不是Type对象 3)您的第一个查询查询将所有公共属性的GetValue转换为IMyLayouts但您显然知道有些是int,所以这也是不正确的。 -
在 IMyLayouts 我有不同类型的公共属性,例如LayoutEmployee、LayoutEmployer 等。我想返回除 int 以外的所有类型
-
这能回答你的问题吗? Linq find all with certain type