c# – 是否可以在.net 4.0中拥有动态对象属性

c# – 是否可以在.net 4.0中拥有动态对象属性,第1张

概述我想基于循环迭代向对象添加新属性,这可能在.Net中吗?我想这样做的原因是我循环遍历excel电子表格中的行,并且对于每个成功读取的行,我想创建一个新的动态对象属性.因此,当循环完成时,我可以简单地将对象传递给方法并记录所有记录. 请参阅下面的代码到目前为止: protected void ReadData(string filePath, bool upload) { S 我想基于循环迭代向对象添加新属性,这可能在.Net中吗?我想这样做的原因是我循环遍历excel电子表格中的行,并且对于每个成功读取的行,我想创建一个新的动态对象属性.因此,当循环完成时,我可以简单地将对象传递给方法并记录所有记录.

请参阅下面的代码到目前为止:

protected voID ReadData(string filePath,bool upload)    {        StringBuilder sb = new StringBuilder();        #region upload        if (upload == true) // CSV file upload chosen        {            using (CsvReader csv = new CsvReader(new StreamReader(filePath),true)) // Cache CSV file to memory            {                int fIEldCount = csv.FIEldCount; // Total number of fIElds per row                string[] headers = csv.GetFIEldheaders(); // Correct CSV headers stored in array                 SortedList<int,string> errorList = new SortedList<int,string>(); // This List will contain error values                ORcdata data = new ORcdata();                bool errorFlag = false;                int errorCount = 0;                // Check if headers are correct first before reading data                if (headers[0] != "first name" || headers[1] != "last name" || headers[2] != "job Title" || headers[3] != "email address" || headers[4] != "telephone number" || headers[5] != "company" || headers[6] != "research manager" || headers[7] != "user card number")                {                    sb.Append("headers are incorrect");                }                else                {                    while (csv.ReadNextRecord())                        try                        {                            //Check csv obj data for valID values                            for (int i = 0; i < fIEldCount; i++)                            {                                if (i == 0 || i == 1) // Firstname and Lastname                                {                                    if (Regex.IsMatch(csv[i].ToString(),"^[a-z]+$",RegexOptions.IgnoreCase) == false) //REGEX letters only min of 5 char max of 20                                    {                                        errorList.Add(errorCount,csv[i]);                                        errorCount += 1;                                        errorFlag = true;                                        string text = csv[i].ToString();                                    }                                }                            }                            if (errorFlag == true)                            {                                sb.Append("<b>" + "Number of Error: " + errorCount + "</b>");                                sb.Append("<ul>");                                foreach (keyvaluePair<int,string> key in errorList)                                {                                    sb.Append("<li>" + key.Value + "</li>");                                }                            }                            else // All valIDation checks equaled to false. Create User                            {                                string message = ORCLdap.createuserAccount(rootLDAPPath,svcUsername,svcPassword,csv[0],csv[1],csv[2],csv[3],csv[4],csv[5],csv[7]);                                // Todo: Add to object here                                sb.Append(message);                                //sb.Append("<b>New user data uploaded successfully</b>");                            }                        }// end of try                        catch (Exception ex)                        {                            sb.Append(ex.ToString());                        }                        finally                        {                            lblMessage.Text = sb.ToString();                            sb.Remove(0,sb.Length);                            hdnRdoSelection.Value = "1";                        }                }            }        }        #endregion

我之前从未尝试过这样做,因此我不确定如何接近它,但任何帮助都会很棒.谢谢.

解决方法

I want to add new propertIEs to an object based on loop iterations,is this possible in .Net?

有点.您可能希望使用ExpandoObject,将其视为IDictionary< string,object>当您添加属性时.

话虽如此,如果你以后不打算尝试将这些属性用作属性,你真的需要它们作为属性吗?为什么不使用Dictionary< string,object>开始?

总结

以上是内存溢出为你收集整理的c# – 是否可以在.net 4.0中拥有动态对象属性全部内容,希望文章能够帮你解决c# – 是否可以在.net 4.0中拥有动态对象属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1229311.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存