使用object的int属性对对象列表执行C#orderby操作
我试图根据每个对象的权重(int)对对象数组进行排序。我使用的代码是:使用object的int属性对对象列表执行C#orderby操作,c#,sorting,sql-order-by,C#,Sorting,Sql Order By,我试图根据每个对象的权重(int)对对象数组进行排序。我使用的代码是: Node[] sortedNodes = nodeArray.OrderBy(x => x.getWeight()); 我也试过这样的方法: IEnumerable<Node> sortedNodes = nodeArray.OrderBy (node => node.getWeight, IComparable<int>); IEnumerable sortedNodes=noder
Node[] sortedNodes = nodeArray.OrderBy(x => x.getWeight());
我也试过这样的方法:
IEnumerable<Node> sortedNodes = nodeArray.OrderBy
(node => node.getWeight, IComparable<int>);
IEnumerable sortedNodes=noderray.OrderBy
(node=>node.getWeight,IComparable);
我想知道是否有人能帮我找到正确的方向
编辑:我得到以下错误: 方法的类型参数出现错误1 'System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable, System.Func“”不能为空 从用法推断。尝试 指定类型参数 明确地C:\Users\paul\AppData\Local\Temporary Projects\ConsoleApplication1\Program.cs 26 34 HuffmanCode
您的代码几乎正确-如果您想要一个有序的序列,您可以使用:
IEnumerable<Node> sortedNodes = nodeArray.OrderBy(node => node.getWeight());
您的示例无法编译,因为没有从
IEnumerable
到Node[]
的隐式转换,因此需要调用ToArray
。您的代码几乎正确-如果您想要一个有序序列,可以使用:
IEnumerable<Node> sortedNodes = nodeArray.OrderBy(node => node.getWeight());
您的示例无法编译,因为没有从
IEnumerable
到Node[]
的隐式转换,因此需要调用ToArray
。getWeight是方法还是属性?@Etienne getWeight是方法。NET约定说它应该是属性。但这只是一个约定。getWeight是一个方法还是一个属性?@Etienne getWeight是一个方法。NET约定说它应该是一个属性。但这只是个惯例,谢谢。我很感激这两个答案。代码已启动并正在运行。祝你有美好的一天!我认为应该是OrderBy(x.getWeight)
或OrderBy(x=>x.getWeight())
因为getWeight
是一种方法当然我对OrderBy(x.getWeight)
的理解是错误的。方法组转换在这种情况下不适用:)谢谢。我很感激这两个答案。代码已启动并正在运行。祝你有美好的一天!我认为应该是OrderBy(x.getWeight)
或OrderBy(x=>x.getWeight())
因为getWeight
是一种方法当然我对OrderBy(x.getWeight)
的理解是错误的。方法组转换在这种情况下不适用:)