c#使用Lists<>循环遍历对象中的所有变量

时间:2016-09-27 19:54:55

标签: c#

拥有"用户类"在我的C#项目中我希望将所有变量存储在一个文本文件中 - 一切顺利,直到我来到一个"做"包含在用户类中的列表。 User类还包含几个列表

所以问题是,我如何遍历对象中的所有变量,以及所包含列表中的所有变量?

到目前为止我得到的代码:

                    StreamWriter File = new StreamWriter(Sökväg);

                    var props = this.GetType().GetProperties();
                    foreach (var prop in props)
                    {
                        object value = prop.GetValue(this, null); // against prop.Name
                        if (value != null)
                        {
                            switch (prop.PropertyType.ToString())
                            {
                                case "System.String":
                                case "System.Int16":
                                case "System.Int32":
                                case "System.Int64":
                                case "System.DateTime":
                                case "System.Boolean":
                                    File.WriteLine(prop.Name + "|" + value.ToString());
                                    break;
                                default:
                                    MessageBox.Show("Property type not supported" +
                                    Environment.NewLine + prop.Name);
                                    break;
                            }
                        }
                    }
                    File.Close();

1 个答案:

答案 0 :(得分:0)

在生产环境中,反射是一件非常昂贵的事情。话虽如此,您首先要将第一行和最后一行之间的所有代码重构为新方法。然后,您可以为列表添加其他case语句并迭代元素,并递归调用重构的原始方法。