Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OrderByDescending缺少条件_C#_Linq - Fatal编程技术网

C# 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

我有一个列表,其中在代码运行时添加了新的整数,在此之后我想使用linq函数“OrderByDescending”,但我的列表似乎不包含我要查找的条件。我的问题是如何添加它,因为下面的代码不起作用

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中,最后我想同时检查最高电流+最高功率