gpt4 book ai didi

c# - 从 IList 迭代动态属性

转载 作者:行者123 更新时间:2023-11-30 18:25:04 29 4
gpt4 key购买 nike

我正在尝试创建一个属性验证器,给定一个列表,它必须确保该列表至少有一个元素。

所以,我暂时有这个

public override bool IsValid(object value)
{
var list = value as IList;

if (list != null)
return list.Count >= 1;

return false;
}

我的问题是,我可以收到一个包含多个元素的列表,但是所有这些元素的属性都是空的,所以我需要遍历每个属性来检查它们。我不太确定在不知道属性名称的情况下如何实现这一目标。

最佳答案

根据您的评论,您有一个自定义类型。首先,在你的方法声明中使用它,不要使用对象。类型转换以及装箱和拆箱都很昂贵:

public override bool IsValid(IEnumerable<MyType> myObjects)

其次,通过名为 IsEmpty 的属性增强您自己的类型:

public class MyType
{
public bool IsEmpty
{
get
{
// define here when your type is empty
}
}

...
}

那么您的最终检查很简单:

public override bool IsValid(IEnumerable<MyType> myObjects)
{
return myObjects != null ? myObjects.Any() : false;
}

关于c# - 从 IList 迭代动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30491400/

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