超全模态模型 × Harness 升级,升级解锁 ArkClaw,最新支持 DeepSeek-V4 系列与 GLM-5.1
给你几个可行的解决方案:
返回的集合里是匿名类型实例,在同一程序集内可以借助dynamic直接访问它的属性,代码示例:
dynamic
// 先调用方法拿到结果 var nullProps = GetProps(你的对象实例); // 筛选出YearOfBirth对应的项 var yearOfBirthItem = nullProps.Cast<dynamic>() .FirstOrDefault(item => item.property == "YearOfBirth"); if (yearOfBirthItem != null) { var value = yearOfBirthItem.value; // 这里拿到的就是null(符合你的示例) // 后续可以加自己的处理逻辑 }
如果是跨程序集场景,或者不想用dynamic,就用反射来读取属性值:
var nullProps = GetProps(你的对象实例); var yearOfBirthItem = nullProps.FirstOrDefault(item => item.GetType().GetProperty("property")?.GetValue(item)?.ToString() == "YearOfBirth"); if (yearOfBirthItem != null) { var value = yearOfBirthItem.GetType().GetProperty("value")?.GetValue(yearOfBirthItem); // 处理逻辑 }
匿名类型的灵活性太差,不如定义一个明确的类来存属性名和值,后续使用更省心: 首先定义承载类:
public class PropertyValuePair { public string Property { get; set; } public object Value { get; set; } }
然后修改原方法的返回类型和创建对象的逻辑:
public static IEnumerable<PropertyValuePair> GetProps<T>(T obj) { var result = obj.GetType().GetProperties() .Select(x => new PropertyValuePair { Property = x.Name, Value = x.GetValue(obj) }) .Where(x => x.Value == null) .ToList(); return result; }
之后访问就非常直观了:
var nullProps = GetProps(你的对象实例); var yearOfBirthItem = nullProps.FirstOrDefault(item => item.Property == "YearOfBirth"); if (yearOfBirthItem != null) { var value = yearOfBirthItem.Value; // 处理逻辑 }
内容的提问来源于stack exchange,提问作者user8086802
超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起
模型再升级,30秒超长叙事, 模态参考扩容
模型自由,工具不限,最新支持 Deepseek-V4 系列、GLM-5.3 系列
超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列
大模型19元起,Al应用9.9元畅享,新人首购爆款尽享优惠