You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量校验列表中对象的空属性并统一设置默认值?

解决方案:批量处理对象的Null属性

你可以通过反射来批量遍历对象的属性,无需逐个判断,自动将null的string类型属性设置为默认值"0"。以下是具体实现:

1. 编写通用处理方法

这个方法会遍历对象的所有公开实例属性,只针对string类型且可写的属性进行null判断和赋值:

private void SetNullStringPropertiesToZero(object targetObj)
{
    if (targetObj == null) return;

    // 获取所有可写的string类型属性
    var stringProps = targetObj.GetType()
        .GetProperties(BindingFlags.Public | BindingFlags.Instance)
        .Where(prop => prop.PropertyType == typeof(string) && prop.CanWrite);

    foreach (var prop in stringProps)
    {
        var currentValue = prop.GetValue(targetObj);
        if (currentValue == null)
        {
            prop.SetValue(targetObj, "0");
        }
    }
}

2. 在遍历中调用方法

修改你的foreach循环,直接调用上面的方法处理每个对象:

var results = await Login.Connection
    .Request("TABLE")
    .Filter("(U_ATRIBUTE eq " + item + " )")
    .GetAsync<List<OBJECT>>();

foreach (var result in results)
{
    SetNullStringPropertiesToZero(result);
}

注意事项

  • 针对DateTime类型:它是值类型,默认不会为null(除非你定义的是DateTime?可空类型),如果需要处理可空日期的默认值,可以扩展上述方法,添加对Nullable<DateTime>的判断逻辑。
  • 性能考量:反射会有轻微的性能开销,如果处理的对象数量极大,可以考虑缓存属性信息来优化。

内容的提问来源于stack exchange,提问作者Isabella

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:50:30