c# - 动态对象引用 C#
问题描述
我创建了一个 Mydata 方法来从列表 (listData) 中分配新数据。但是我这样做的方式不是动态的,我使用 if else 语句来确定要添加多少数据以及它属于哪个属性。有没有办法在不使用 if else 语句的情况下简化它或使其动态化。
public List<Data> _newData = new List<Data>();
public void Mydata(int number, List<string> listData) {
if (number == 1) {
_newData.Add(new Data() {
variable0 = listData[0].ToString(),
});
}
else if (number == 2) {
_newData.Add(new Data() {
variable0 = listData[0].ToString(),
variable1 = listData[1].ToString(),
});
}
else if (number == 3) {
_newData.Add(new Data() {
variable0 = listData[0].ToString(),
variable1 = listData[1].ToString(),
variable2 = listData[2].ToString(),
});
}
class Data
{
public string variable1 { get; set; }
public string variable2 { get; set; }
public string variable3 { get; set; }
public string variable4 { get; set; }
..
public string variable10 { get; set; }
}
解决方案
假设您想保持数据结构的原样(不推荐 - 请参阅注释),明显的代码简化将是:
var d = new Data
{
variable0 = listData[0];
};
if (number >= 1) d.variable1 = listData[1];
if (number >= 2) d.variable2 = listData[2];
if (number >= 3) d.variable3 = listData[3];
_newData.Add(d);
推荐阅读
- php - Laravel 5.8 上传图片到数据库
- react-native - 使用 react-native-video 播放大型视频文件时出错
- python - 无法将 JSON 加载到 MongoDB,因为 MongoDB 特定符号
- java - Java 数据库 - 绝对 URL
- java - 如何修复 Jhipster aws 子生成器因“无法解析命令行选项:无法识别的选项:-ntp”错误而失败
- php - 子文件夹的 PHP 命名空间问题
- html - 如何为文本静音类向右浮动/向右拉动
- javascript - sSearch:过滤记录不从首字母开始过滤,而是包含
- lua - 如何在 Lua 中替换部分字符串?
- python - 将浮点值分配给数组时出现以下错误:(“'numpy.float64' 对象不支持项分配”,'发生在索引 4')