2017-06-21 63 views
-4

我想返回User,其中金额最低。C# - 返回列表中最低值的对象

List<User> users = new List<User>(); 
users.Add(new User("Patrick", 39m)); 
users.Add(new User("Claude", 13.7m)); 
users.Add(new User("Steven", -45.3m));  

Decimal lowest = users.Min(user => user.Amount); //this gives me -45.3m 

但是我需要的是-45.3m,我需要User{"Steven", -45.3m}

+1

按金额排序,并采取新集合中的第一个对象。 –

+0

@MichaelMcGriff是的,这就是我已经完成的工作,并且这个工作很完美,但是我想把它写得更干净,就像我用Decimal给出的例子。 –

+5

你搜索了什么?我google搜索“linq选择列表中最低的对象”,这是第一个结果:https://stackoverflow.com/questions/914109/how-to-use-linq-to-select-object-with-minimum-or-maximum -property-value –

回答

0

什么这样的事情......只是遍历列表,找到的最小量。

User lowest = users[0]; 
foreach(User u in users){ 
    if(u.Amount < lowest.Amount) 
     lowest = u; 
} 
+0

链接杰克马尔凯蒂在你原来的问题提供应该让你在正确的轨道上..我只是在这里添加这个答案作为一种替代方式来解决它..如果人们想投我一票,这是真的我的背上没有汗。我只是想帮助。 – phishfordead