Huc*_*ker 2 linq vb.net lambda minimum
我已经做了很多搜索似乎是一个简单的LINQ问题,但我无法弄清楚如何从具有指定最小值(或最大值)的集合中抓取一个对象而不采用这样的排序:
dim customers= GetCustomers()
dim youngest = (From c in customers
Order By c.age Ascending).ToList.First
Run Code Online (Sandbox Code Playgroud)
此(未经测试的代码)结构可正常工作,但必须对整个客户数组进行排序并将其放入列表中,以便仅提取第一个值.这不是获得最低限度的最佳方式!
请注意,在这种情况下我想要整个c记录,而不是像这样可以完成的客户的最小年龄(典型示例):
dim customers= GetCustomers()
dim youngest = (From c in customers
Select c.age).Min
Run Code Online (Sandbox Code Playgroud)
甚至
dim customers= GetCustomers()
dim youngest = (From c in customers
Select c).Min(Function(x) x.age)
Run Code Online (Sandbox Code Playgroud)
我不能为我的生活弄清楚如何获得整个对象(甚至索引)而不诉诸于排序......
同样,C#代码,我不确定我是否在VB.NET中正确使用它
C#
Customer youngest = customers.Aggregate((c1, c2) => (c1.age < c2.age) ? c1 : c2);
Run Code Online (Sandbox Code Playgroud)
VB.NET
dim youngest = customers.Aggregate( Function(ByVal c1, ByVal c2) IF( (c1.age < c2.age) , c1 , c2 ) );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24095 次 |
| 最近记录: |