gpt4 book ai didi

c# - 使用 FUNC 方法(选择器)返回我列表的 "light version"

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:56 26 4
gpt4 key购买 nike

我有一个可枚举的客户端列表,想要返回我的客户端对象的一个​​轻量级“版本”:

IEnumerable<Client> clientList = blablabla. (data is fetched here)

return clientList.Select(b=> new CustomerSearchResult { Number= b.AccountNumber, Name = b.FirstName+" " +b.LastName , ...});

请注意,这是有效的,并且将是一个基于 ClientList 的 customerSearchResult 对象

我想创建一个 FUNC(例如:CustomerSelector)来为每个客户对象创建一个 CustomerSearchResult(我的目标是避免像这样为我的每个客户列表手动设置属性):

例如:

Expression<Func<Customer,CustomerSearchResult>> selector = (input) =>
new CustomerSearchResult
{
Number= b.AccountNumber,
Name = b.FirstName+" " +b.LastName ,
...
};

...
... //CustomerList is previously populated
return CustomerList.Select(selector);

我收到以下错误:IEnumerable<Customer>不包含选择的定义

在这种情况下是否可以创建 FUNC 选择器?

最佳答案

问题是您正在使用表达式树 - IQueryable<T> 使用它(或者更确切地说,Queryable 中的扩展方法针对 IQueryable<T> )。对于 Enumerable.Select ,你想要一个代表。只需更改您的 selector声明:

Func<Customer, CustomerSearchResult> selector = input => { ... }

关于c# - 使用 FUNC 方法(选择器)返回我列表的 "light version",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com