如何通过lambda表达式中的字符串属性名称进行选择查询? [英] How to make select query by string property name in lambda expression?

查看:493
本文介绍了如何通过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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆