【发布时间】:2018-10-12 09:21:18
【问题描述】:
我有一个包含 10 个属性的对象列表 (MyObject)。
Class MyObject{
string F1,
string F2,
....
string F10
}
var myList = new List<MyObject> ()
根据字符串列表中提供的输入,我必须从该 mylist 中过滤掉一些属性并获取所选项目的新列表。
var requiredFlields = new List<String> {"F1", "F2"}
我知道:
var o1 = myList.Select(a => new { a.F1, a.F2 }).ToList();
但它不允许我使用 requiredFields 列表进行过滤。
有没有办法做到这一点?
【问题讨论】:
-
您可以为此使用反射并从属性信息列表中过滤
-
类似这样的东西(未经测试)
typeof(MyObject).GetProperties().Where(x => requiredFields.Contains(x.Name)).SelectMany(y => myList.Select(x => y.GetValue(x, null))- 必须小心属性是什么以及变量是什么 -
是的,myList 是 List
类型,它包含许多对象
标签: c# list oop collections filter