所以,我有一些字符串数组:
column1的 栏3
我有课程
class A
{
object Column1;
object Column2;
object Column3;
object Column4;
object Column5;
}
现在我有一个A对象列表
List<A> ListOfA = new List<A>();
该列表包含N个元素。
现在,我如何将它转换为该数组中的某个对象?并List<NewAnonymous>
我希望列出new { Column1 = '', Column3=''}
但我永远不知道该数组中的列。
这甚至可能吗?如果是,我可以寻找它。我有一些代码,但我认为它不会有帮助,所以我只想解释我想说的话
答案 0 :(得分:2)
基于对我提出的问题的评论:
foreach (A a in listOfA)
{
var t = typeof(A);
List<object> list = new List<object>();
foreach (var prop in t.GetProperties())
{
list.Add(prop.GetValue(a));
}
newListOfA.Add(list);
}
修改强> 如果你更喜欢非基于查询的LINQ,这里是EarthEngine LINQ的扩展
t = typeof(A)
listOfA.SelectMany(o=>t.GetProperties().Select(i=>i.GetValue(o))
答案 1 :(得分:1)
与默多克的答案相同,但纯粹的LINQ
from a in listOfA
let t = typeof(A)
from prop in t.GetProperties()
select prop.GetValue(a)
答案 2 :(得分:1)
我会逆转目前的趋势并说你可以通过反思这样做,但你不应该这样做。
为什么呢?因为现在你有一个匿名类型,你不知道它的属性。你将如何使用下游?更多的反思?
如果您有不明数量的字段,最好以索引方式(列表或字典)处理它们,而不是反射的漏洞。