ser*_*nfo 3 c# linq-to-objects dynamic c#-4.0
我有动态的客户名单 IEnumerable<Customer>
现在我想从该列表中获得明显的公司名称?
我以为我可以做点什么
dynamic cur = (from c in result.Customers
select g.CompanyName).Distinct();
Run Code Online (Sandbox Code Playgroud)
但今天学到了我不能......我怎么能建立这样的查询呢?
小智 5
您在代码中所做的以及您在问题标题中提出的问题是两回事.
如果您需要,IEnumerable<dynamic>您必须执行以下操作:
IEnumerable<dynamic> cur = (from c in result.Customers
select g.CompanyName).Cast<dynamic>().Distinct();
Run Code Online (Sandbox Code Playgroud)
from c in result.Customers select g.CompanyName回报IEnumerable<string>.
Cast<dynamic>()回报IEnumerable<dynamic>.
Distinct()返回可枚举的不同成员.
Distinct()默认情况下,使用默认的相等比较器EqualityComparer <T>.这将检查枚举的类型并尝试找出如何处理它(链接详细描述了这一点).
除非动态处理的类型无法由默认的相等比较器处理,否则这一切都按照公布的方式工作.在这种情况下,您将必须使用带有自定义相等比较器的覆盖.
| 归档时间: |
|
| 查看次数: |
5068 次 |
| 最近记录: |