根据数据库记录动态生成C#类及其公共属性并动态执行的解决方案
问题:
C#中,想动态产生这么一个类:
public class StatisticsData{
public string order_no { get; set; }
public int qty { get; set; }
public int ocv1_plan { get; set; }
public int ocv1_A { get; set; }
public int ocv1_Ba { get; set; }
// ....
public int ocv2_plan { get; set; }
public int ocv2_A { get; set; }
public int ocv2_B { get; set; }
// ....
public int ocv2_N { get; set; }
public int ocv3_plan { get; set; }
public int ocv3_A { get; set; }
// ....
public int ocv3_X { get; set; }
public int ocv4_plan { get; set; }
public int ocv4_A { get; set; }
// ....
public int ocv4_T { get; set; }
// ....
}
需要用代码动态生成,因为上面的ocv1,2...以及Rank等级都是从数据库中取记录,有什么样的记录,有多少条记录,不确定,因此需要动态生成。
其中部分公共属性是固定的,而另一部分则是动态的,比如:ocv数字_xxx。
可能有多个不定的ocv数字及_xxx,分别根据一个List<string> listOcv(工序列表)和一个Dictionary<string, string[]> dictRank(等级列表)得到:
List<string> listOcv = new List<string>();
listOcv.Add("ocv1");
listOcv.Add("ocv2");
listOcv.Add("ocv3");
listOcv.Add("ocv4");
//...
Dictionary<string, string[]> dictRank=new Dictionary<string, string[]>();
dictRank.Add("ocv1", new string[]{"plan","A","Ba"});
dictRank.Add("ocv2", new string[]{"plan","A","B", ..., "N"});
dictRank.Add("ocv3", new string[]{"plan","A", ..., "X"});
dictRank.Add("ocv4", new string[]{"plan","A", ..., "T"});
思考其解决方案,提示:用DynamicObject 类继承或.net反射。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
C#使用拉依达准则(3σ准则)剔除异常数据(.Net剔除一组数据中的奇异值)
原文: C#使用拉依达准则(3σ准则)剔除异常数据(.Net剔除一组数据中的奇异值) 1、问题的提出: 电池生产中,遇到一批电池的测量结果数据: 电压值 电池个数 电压值 电池个数 电压值 电池个数 电压值 电池个数 0.056 1 4.09 1 4.146 17 4.174 13434 0.321 1 4.094 1 4.147 17 4.175 13973 0.767 1 4.099 2 4.148 19 4.176 13339 0.972 1 4.112 1 4.149 23 4.177 12275 3.098 1 4.119 3 4.15 26 4.178 10309 3.187 1 4.12 1 4.151 40 4.179 8376 3.319 1 4.121 1 4.152 50 4.18 6324 3.526 1 4.122 3 4.153 75 4.181 4667 3.53 1 4.125 3 4.154 84 4.182 3340 3.532 1 4.126 2 4.155 100 4.183 2358 ...
- 下一篇
C#正则表达式的完全匹配、部分匹配及忽略大小写的问题
原文: C#正则表达式的完全匹配、部分匹配及忽略大小写的问题 问题的提出 根据用户给定表达式,里面含有各种数学函数,如求绝对值,三角函数,平方、开方等,分别以类似ABS(表达式),Sin(表达式),ASin(表达式),POW(表达式)等形式表述。 由于用户输入的可能是不区分大小写,而且可能用Sin,Asin,Tan,Tanh等(具体见下面代码中所述的函数),因此,要求解决完全匹配和部分匹配的问题,还要解决忽略大小写的问题。 将用户的函数前加“Math.”,后跟函数名称及括号等。 实现如下: //用于数学计算的函数 List<string> listMathFunctions = new List<string>(new string[]{ "Abs", "Acos", "Cos","Asin", "Atan", "Atan2", "Ceiling", "Cosh", "Exp", "Floor", "Log", "Log10", "Max", "Min", "PI", "Pow", "Round", "Sign", "Sin", "Si...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6