日期:2014-05-20  浏览次数:20907 次

关于最大值查找的一些问题
我想通过查找出一个类中,金额最大的一个对象,并将其显示出来,如代码

C# code
public void Test18()
         {
             Contract cont = new Contract();
             List<Contract> listcont = cont.GetContractList();
 
             decimal max = listcont.Max(e => e.ContractAmt);
 
             var items = from e in listcont
                         where e.ContractAmt == max
                         select e;
 
             foreach (var item in items)
             {
                 Console.WriteLine("{0}:{1} 金额:{2} 时间:{3}", items.ContractNumber, items.CustomerNumber, items.ContractAmt, items.ContractDate);
             }
 
         }



可是items中并没有ContractNumber等该对象的字段,为什么?我的方法哪里错了?有别的方法么?

求高人解答,小弟谢过各位了~

------解决方案--------------------
你的错误在这:

foreach (var item in items)
{
Console.WriteLine("{0}:{1} 金额:{2} 时间:{3}", items.ContractNumber, items.CustomerNumber, items.ContractAmt, items.ContractDate);
}

应该是item 而不是items
------解决方案--------------------
items-》item
------解决方案--------------------
你的代码可以简化成这样:
C# code

public void Test18()
         {
             Contract cont = new Contract();
             List<Contract> listcont = cont.GetContractList();
 
             var maxItem = listcont.OrderByDescending(e => e.ContractAmt).FirstOrDefalut();
 
             Console.WriteLine("{0}:{1} 金额:{2} 时间:{3}", maxItem.ContractNumber, maxItem.CustomerNumber, maxItem.ContractAmt, maxItem.ContractDate);
            
         }