“Array”不包含“OrderBy”的定义

ToM*_*ems -5 c# arrays

我有一个 Jobs 数组,但是我遇到了 JobName 数组为我提供错误的问题Array does not contain a definition for OrderBy。我必须做什么才能将 OrderBy 与数组一起使用?

liv*_*ve2 7

OrderBy是一个 linq 方法,你需要命名空间System.Linq

  • OrderBy - 根据键按升序对序列的元素进行排序。
  • OrderByDescending - 根据键以降序对序列的元素进行排序。

OrderBy 示例

using System;
using System.Linq;

namespace Test.SO47928637
{
    public class Job
    {
        public string JobName { get; set; }
        public int JobTime { get; set; }

        public override string ToString()
        {
            return $"Job{JobName}:{JobTime}";
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Please enter the time for the following jobs");

            //record the times for the evaluation

            Console.WriteLine("Job A Time (ms): ");
            string timeOneText = Console.ReadLine();
            int jobTimeOne = int.Parse(timeOneText);
            Job jobA = new Job { JobName = "A", JobTime = jobTimeOne };
            Console.WriteLine(jobA);

            Console.WriteLine("Job B Time (ms): ");
            string timeTwoText = Console.ReadLine();
            int jobTimeTwo = int.Parse(timeTwoText);
            Job jobB = new Job { JobName = "B", JobTime = jobTimeTwo };
            Console.WriteLine(jobB);

            Console.WriteLine("Job C Time (ms): ");
            string timeThreeText = Console.ReadLine();
            int jobTimeThree = int.Parse(timeThreeText);
            Job jobC = new Job { JobName = "C", JobTime = jobTimeThree };
            Console.WriteLine(jobC);

            Console.WriteLine("Job D Time (ms): ");
            string timeFourText = Console.ReadLine();
            int jobTimeFour = int.Parse(timeFourText);
            Job jobD = new Job { JobName = "D", JobTime = jobTimeFour };
            Console.WriteLine(jobD);

            Console.WriteLine("Job E Time (ms): ");
            string timeFiveText = Console.ReadLine();
            int jobTimeFive = int.Parse(timeFiveText);
            Job jobE = new Job { JobName = "E", JobTime = jobTimeFive };
            Console.WriteLine(jobE);

            Console.WriteLine("Press any key to continue");
            Console.ReadLine();

            //Create an array for Job titles
            Job[] jobs = { jobA, jobB, jobC, jobD, jobE };

            var items = jobs.OrderBy(o => o.JobName);
            Console.WriteLine("Order by JobName ascending");
            foreach (var item in items)
            {
                Console.WriteLine(item.ToString());
            }

            items = jobs.OrderBy(o => o.JobTime);
            Console.WriteLine("Order by JobTime ascending");
            foreach (var item in items)
            {
                Console.WriteLine(item.ToString());
            }

            items = jobs.OrderByDescending(o => o.JobTime);
            Console.WriteLine("Order by JobTime descending");
            foreach (var item in items)
            {
                Console.WriteLine(item.ToString());
            }

            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)