如何通过lambda表达式中的字符串属性名称进行选择查询? [英] How to make select query by string property name in lambda expression?
本文介绍了如何通过lambda表达式中的字符串属性名称进行选择查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想通过使用lambda选项进行查询,
I would like to make a query by using lambda select,
如下所示:
public class Foo{
public int Id {get;set;}
public string Name {get;set;}
public string Surname {get;set;}
}
var list = new List<Foo>();
var temp = list.Select(x=> x("Name"),("Surname"));
属性名称需要作为字符串发送,
我不知道如何使用我给了它一个例子。
可以吗?
The property name needs to be sent as a string, I dont know how to use, I have given it for being a example. is it possible?
编辑:
Foo list :
1 A B
2 C D
3 E F
4 G H
我不知道通用列表的类型,我有属性名称,如名称,姓氏
I don't know type of generic list, I have property name such as "Name", "Surname"
我想要如下所示:
Result :
A B
C D
E F
G H
推荐答案
以下代码片段显示2例。一个过滤列表,另一个创建一个新的匿名对象列表,只有Name和Surname。
The following code snippet shows 2 cases. One filtering on the list, and another creating a new list of anonymous objects, having just Name and Surname.
List<Foo> list = new List<Foo>();
var newList = list.Select(x=> new {
AnyName1 = x.Name,
AnyName2 = x.Surname
});
var filteredList = list.Select(x => x.Name == "FilteredName" && x.Surname == "FilteredSurname");
var filteredListByLinq = from cust in list
where cust.Name == "Name" && cust.Surname == "Surname"
select cust;
var filteredByUsingReflection = list.Select(c => c.GetType().GetProperty("Name").GetValue(c, null));
这篇关于如何通过lambda表达式中的字符串属性名称进行选择查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文