Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以C#类型和名称动态创建对象_C#_Linq_List_Dynamically Generated - Fatal编程技术网

如何以C#类型和名称动态创建对象

如何以C#类型和名称动态创建对象,c#,linq,list,dynamically-generated,C#,Linq,List,Dynamically Generated,我想创建一个动态创建对象的列表 然后我想将这个对象添加到列表中 所以在上面的例子中,我想创建一个名为Image的类型entity的列表 List<DataConsistencyModel> dataConsistencyModels = new List<DataConsistencyModel> { new DataConsistencyModel{ PropertyName = "Logo",TypeOf

我想创建一个动态创建对象的列表

然后我想将这个对象添加到列表中

所以在上面的例子中,我想创建一个名为Image的类型entity的列表

        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#的一个限制(以及其他语言的一个很好的部分)。