如何动态创建对象?

问题描述:

我想创建对象的列表来替换他们创造的这个方法:如何动态创建对象?

 var colors= new List<object>() 
     { 
      new {key="1",value="red"}, 
      new {key="2",value="white"}, 
      new {key="3",value="blue"} 
     }; 

我想创建一个使用键和值从列表中,而不是硬编码我的对象。就像这样:

var colors= new List<object>() 
     List<String> Keys= new List<String>(); 
     List<String> Values= new List<String>(); 

     for(int i = 0; i<Keys.count();++i) 
    { 
    colors.Add(put logic to add keys and values to colors object(s) here) 
    }; 

我该如何做到这一点:感谢您的帮助!

var colors= new List<object>() 
     List<String> Keys= new List<String>(); 
     List<String> Values= new List<String>(); 

    for(int i = 0; i<Keys.count();++i) 
    { 
    colors.Add(new {key=Keys[i],value=Values[i]}) 
    } 

尝试以上操作。

+0

感谢TGH ......伟大的作品! – CloudyKooper 2014-08-31 06:03:00

你可以在一个更富于表现力的方式使用LINQ,尤其是Enumerable.Zip()做到这一点:

List<string> keys = ...; 
List<string> values = ...; 

var colors = keys.Zip(values, (k, v) => new { key = k, value = v }).ToList();