如何以C#类型和名称动态创建对象
我想创建一个动态创建对象的列表 然后我想将这个对象添加到列表中 所以在上面的例子中,我想创建一个名为Image的类型entity的列表如何以C#类型和名称动态创建对象,c#,linq,list,dynamically-generated,C#,Linq,List,Dynamically Generated,我想创建一个动态创建对象的列表 然后我想将这个对象添加到列表中 所以在上面的例子中,我想创建一个名为Image的类型entity的列表 List<DataConsistencyModel> dataConsistencyModels = new List<DataConsistencyModel> { new DataConsistencyModel{ PropertyName = "Logo",TypeOf
List<DataConsistencyModel> dataConsistencyModels = new List<DataConsistencyModel>
{
new DataConsistencyModel{ PropertyName = "Logo",TypeOf = typeof (Entity),ValidFunction = x => x.GroupId == null},
};
foreach (DataConsistencyModel dcm in dataConsistencyModels)
{
List<TypeOf> PropertyName = Data.Where(dcm.ValidFunction).ToList();
}
列表数据一致性模型=新列表
{
新的数据一致性模型{PropertyName=“Logo”,TypeOf=TypeOf(实体),ValidFunction=x=>x.GroupId==null},
};
foreach(数据一致性模型中的数据一致性模型dcm)
{
List PropertyName=Data.Where(dcm.ValidFunction.ToList();
}
使用字典列表将是一个有用的解决方法
var myObject = new List<Dictionary<string,object>>
{
new Dictionary<string, object>
{
{"val1", 1},
{"val2", true},
{"val3", "String1"}
},
new Dictionary<string, object>
{
{"val1", 2},
{"val2", true},
{"val3", "String2"}
}
};
// you can add as many Values as you want
myObject.Add(new Dictionary<string, object>
{
{"val1", 2},
{"val2", true},
{"val3", "my new String"},
{"val4", "my new String 2"}
});
// Use Keys to access values (Don't Forget casting)
var output = (String) myObject[0]["val3"];
var myObject=新列表
{
新词典
{
{“val1”,1},
{“val2”,真的},
{“val3”,“String1”}
},
新词典
{
{“val1”,2},
{“val2”,真的},
{“val3”,“String2”}
}
};
//您可以添加任意数量的值
myObject.Add(新字典)
{
{“val1”,2},
{“val2”,真的},
{“val3”,“我的新字符串”},
{“val4”,“我的新字符串2”}
});
//使用键访问值(不要忘记强制转换)
变量输出=(字符串)myObject[0][“val3”];
请不要使用代码截图。将实际代码粘贴到此处。var list=Data.Where(dcm.ValidFunction.ToList()代码>??但这只是编译器的隐式类型。是的,但如果不声明变量名,就不能声明变量。这可能不是你的问题,但这是你的代码真正的问题。我知道你想要什么,你想创建一个列表
,该列表的名称是数据一致性模型
的属性名称
,如果这是正确的,我很确定这是不可能的。事实上。如果这就是你打算做的,那就是c#的一个限制(以及其他语言的一个很好的部分)。