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

如何在C#中为内部模型类的成员赋值列表数据

解决方法

首先修正模型定义的问题,再调整访问逻辑:

1. 修复User类的Headlist定义

原代码里的Headlist是字段而非属性,且未初始化,这会导致访问时可能出现空引用或访问受限。改成带初始化的自动属性:

public class User
{
    public string? UserName { get; set; }
    public string? Password { get; set; }
    // 改为自动属性并初始化空列表,避免空引用
    public List<UserDetails> Headlist { get; set; } = new List<UserDetails>();
}

public class UserDetails
{
    public string? FirstName { get; set; }
    public string? LastName { get; set; }
    public string? Address { get; set; }
    public string? MobileNo { get; set; }
}

2. 正确插入和访问数据

Headlist是集合类型,不能直接通过user.Headlist.FirstName这种方式访问,必须先定位到列表里的具体元素:

插入表格数据

var user = new User();
// 从表格提取数据,创建UserDetails实例并添加到列表
var tableRowDetail = new UserDetails
{
    FirstName = "表格中的名字",
    LastName = "表格中的姓氏",
    Address = "表格中的地址",
    MobileNo = "表格中的手机号"
};
user.Headlist.Add(tableRowDetail);

访问列表元素的列

  • 取列表中第一个元素的属性:
var targetFirstName = user.Headlist[0].FirstName;
  • 遍历所有元素并访问属性:
foreach (var detail in user.Headlist)
{
    Console.WriteLine(detail.FirstName);
    Console.WriteLine(detail.Address);
}

常见问题总结

  • 原Headlist是字段,部分场景(比如序列化、数据绑定)下会无法正常访问,改成属性是规范做法
  • 未初始化列表会导致空引用异常,初始化后才能安全添加元素
  • 集合不能直接访问单个对象的属性,必须先获取集合内的具体元素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:15:56