gpt4 book ai didi

c# - 检查 IEnumerable 类型集合中的属性

转载 作者:太空狗 更新时间:2023-10-30 00:25:47 25 4
gpt4 key购买 nike

我正在尝试查找 IEnumerable 类型的集合是否包含属性。

假设 RowModelsIEnumerable 类型的集合,我有...

  foreach (var items in RowModels) {
if (items.GetType()
.GetProperties()
.Contains(items.GetType().GetProperty("TRId").Name) )
{
// do something...
}
}

我得到了错误

System.Reflection.PropertyInfo[] does not contain a definition for 'Contains' 
and the best extension method overload has some invalid arguments.

最佳答案

您可以使用 Enumerable.Any() :

foreach (var items in RowModels) {
if(items.GetType().GetProperties().Any(prop => prop.Name == "TRId") )
{
// do something...
}
}

话虽如此,您也可以直接检查属性:

foreach (var items in RowModels) {
if(items.GetType().GetProperty("TRId") != null)
{
// do something...
}
}

此外 - 如果您正在寻找 RowModels 中的项目实现特定接口(interface)或属于某个特定类的,您可以只写:

foreach (var items in RowModels.OfType<YourType>())
{
// do something
}

OfType<T>()方法将自动过滤为指定类型的类型。这也有为您提供强类型变量的优势。

关于c# - 检查 IEnumerable 类型集合中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15439859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com