2017-04-27 91 views
1

我想要做我认为使用Linq lambda的一个非常简单的想法,它可能是,但我找不到示例在任何教程。如何写一个lambda来获得基于对象中另一个属性的一个属性

我有一个简单的类与几个属性。我想根据该类中另一个值的值获取其中一个属性的列表。

下面是代码的一个例子,使用LINQ to得到正确的结果:

public class Client 
{  
    public int ClientId { get; set; } 


    public int ClientWorth { get; set; } 


    public strin ClientName { get; set; }  
} 
. 
. 
. 
. 
List<Client> allClients = this.GetAllClients(); 

List<string> richClients = (
        from c in allClients 
        where c.ClientWorth > 500 
        select c.ClientId.ToString()).ToList(); 

谁能告诉我如何做到这一点使用Lambda 我可以做到以下几点:

List<Clients> richClients = allClients.Where(x => x.ClientWorth >500)

哪给我一个所有客户端的列表,但我想用客户端id返回一个字符串列表。

回答

3

通过客户价值值滤波后,你应该项目结果 - 即选择值仅客户端ID:

allClients.Where(c => c.ClientWorth > 500).Select(c => c.ClientId.ToString()).ToList() 

延伸阅读:Enumerable.Select

+1

感谢谢尔盖,这就是我一直在寻找我试过a。所有,我没有想到我可以使用具有更多标准的选择。感谢您的快速响应 – AidanO

+1

@AidanO LINQ有详细记录 - 考虑使用MSDN,如果某些操作员对您不清楚https://msdn.microsoft.com/en-us/library/system.linq.enumerable_methods%28v = vs.110%29.aspx?F = 255&MSPPError = -2147217396 –

相关问题