C#读取CSV至Contacts列表后无法访问元素(如Email)求助
问题解决:无法访问List中的元素属性
你的代码已成功读取CSV文件并生成Contacts对象列表,但无法访问values[0].Email的核心原因是Contacts类中的First、Last、Email字段默认是私有(private)的。在C#中,未显式指定访问修饰符的类成员默认仅允许类内部访问,外部代码无法直接调用。
修正方案
将Contacts类的成员改为公共访问级别,推荐使用规范的公共属性写法:
修正后的Contacts类代码
class Contacts { // 改为公共自动属性(C#推荐写法) public string First { get; set; } public string Last { get; set; } public string Email { get; set; } public static Contacts FromCsv(string csvLine) { string[] values = csvLine.Split(','); return new Contacts { First = values[0], Last = values[1], Email = values[2] }; } }
若需保留字段形式(不推荐,但可行)
class Contacts { // 显式设置为public访问级别 public string First; public string Last; public string Email; public static Contacts FromCsv(string csvLine) { string[] values = csvLine.Split(','); Contacts contacts = new Contacts(); contacts.First = values[0]; contacts.Last = values[1]; contacts.Email = values[2]; return contacts; } }
修改完成后,即可正常访问values[0].Email等对象成员。
内容的提问来源于stack exchange,提问作者rams59
相关产品推荐
相关产品推荐

