C# OrderByDescending缺少条件
我有一个列表,其中在代码运行时添加了新的整数,在此之后我想使用linq函数“OrderByDescending”,但我的列表似乎不包含我要查找的条件。我的问题是如何添加它,因为下面的代码不起作用C# OrderByDescending缺少条件,c#,linq,C#,Linq,我有一个列表,其中在代码运行时添加了新的整数,在此之后我想使用linq函数“OrderByDescending”,但我的列表似乎不包含我要查找的条件。我的问题是如何添加它,因为下面的代码不起作用 List<int> Arr = new List<int>(); Power = 5; current = 1; Arr.Add(current); Arr.Add(Power); Arr.OrderByDescending(p => p.current).ThenByDe
List<int> Arr = new List<int>();
Power = 5;
current = 1;
Arr.Add(current);
Arr.Add(Power);
Arr.OrderByDescending(p => p.current).ThenByDescending(p => p.power).First();
List Arr=new List();
功率=5;
电流=1;
Arr.Add(当前);
Arr.Add(电源);
Arr.OrderByDescending(p=>p.current)。然后是ByDescending(p=>p.power)。First();
我的水晶球告诉我你可能需要这样的东西:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
List<Device> list = new List<Device>(){
new Device(){Power = 3,Current =2}
, new Device(){Power = 2, Current = 2}
, new Device(){Power = 1, Current = 3}
};
var sorted = list.OrderByDescending(d=>d.Current).ThenByDescending(d=>d.Power);
foreach (var d in sorted)
{
Console.WriteLine("Current {0}, Power {1}",d.Current,d.Power);
}
Console.ReadLine();
}
}
class Device
{
public int Power {get;set;}
public int Current { get; set; }
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
命名空间控制台应用程序
{
班级计划
{
静态void Main(字符串[]参数)
{
列表=新列表(){
新设备(){Power=3,Current=2}
,新设备(){Power=2,Current=2}
,新设备(){Power=1,Current=3}
};
var sorted=list.OrderByDescending(d=>d.Current),然后ByDescending(d=>d.Power);
foreach(排序中的变量d)
{
WriteLine(“当前{0},电源{1}”,d.Current,d.Power);
}
Console.ReadLine();
}
}
类设备
{
公共整数幂{get;set;}
公共int当前{get;set;}
}
}
基本上,创建一个类来保存您试图排序的属性。这不会编译,因为列表中的对象(
int
s)没有名为current
或power
的属性或字段。我如何添加它呢?现在还不清楚您试图在这里实现什么。。。您希望对整数序列执行什么操作?OrderByDescending(p=>p.current)
?我认为您误解了OrderBy表达式的工作原理。lamda表达式需要是正在排序的列表中对象的属性的名称。整数列表的排序只能按升序或降序进行,不是同时发生的…在代码运行期间,电流和功率都发生了变化,order by应该在它的末尾,但我删除了大部分,因为它是重复的,每次功率或电流变化都会被添加到列表Arr中,最后我想同时检查最高电流+最高功率