.NET 도움말 C# Orderby (How It Works For Developers) 커티스 차우 업데이트됨:7월 28, 2025 다운로드 IronPDF NuGet 다운로드 DLL 다운로드 윈도우 설치 프로그램 무료 체험 시작하기 LLM용 사본 LLM용 사본 LLM용 마크다운 형식으로 페이지를 복사하세요 ChatGPT에서 열기 ChatGPT에 이 페이지에 대해 문의하세요 제미니에서 열기 제미니에게 이 페이지에 대해 문의하세요 Grok에서 열기 Grok에게 이 페이지에 대해 문의하세요 혼란 속에서 열기 Perplexity에게 이 페이지에 대해 문의하세요 공유하다 페이스북에 공유하기 트위터에 공유하기 LinkedIn에 공유하기 URL 복사 이메일로 기사 보내기 Sorting is a fundamental operation in any programming language, and the C# OrderBy method is a powerful tool for arranging elements within collections. Whether working with arrays, lists, or other enumerable structures, understanding how to leverage OrderBy can greatly enhance the readability and functionality of your code. Later in this article, we will introduce IronPDF library from Iron Software and how we can use the LINQ OrderBy method and IronPDF to generate formatted and sorted PDFs. What is the LINQ OrderBy Method? The OrderBy method is part of the LINQ (Language-Integrated Query) library in C# and is specifically designed to sort elements in ascending order; as it is the default way to sort data, there is no need for an ascending keyword. How to Use the LINQ OrderBy Method Sorting Data in Ascending Order In C#, there are two ways to apply this method: through method syntax or query syntax. We will use the method syntax as it is straightforward: var sortedCollection = collection.OrderBy(item => item.OrderByProperty); var sortedCollection = collection.OrderBy(item => item.OrderByProperty); $vbLabelText $csharpLabel Here, the collection is the IEnumerable source collection you want to sort, and OrderByProperty is the property or expression by which you want to order the elements. The lambda expression within OrderBy specifies the sorting criterion. Sorting Data in Descending Order To sort in descending order, you can use the OrderByDescending method using the method-based syntax: var sortedCollectionDesc = collection.OrderByDescending(item => item.OrderByProperty); var sortedCollectionDesc = collection.OrderByDescending(item => item.OrderByProperty); $vbLabelText $csharpLabel Sorting Data by Multiple Criteria In real-world scenarios, you often need to sort a collection based on multiple criteria. OrderBy allows for this by chaining multiple ThenBy or ThenByDescending calls: var multiSortedCollection = collection .OrderBy(item => item.OrderByProperty1) .ThenByDescending(item => item.OrderByProperty2); var multiSortedCollection = collection .OrderBy(item => item.OrderByProperty1) .ThenByDescending(item => item.OrderByProperty2); $vbLabelText $csharpLabel In this example, the collection is first sorted by OrderByProperty1 in ascending order. Then, for elements with the same OrderByProperty1 value, it's sorted by OrderByProperty2 in descending order. Custom Comparers For more complex sorting requirements, you can use custom comparers. The OrderBy method allows you to pass an IComparer<T> implementation, as shown in the following example: var customSortedCollection = collection.OrderBy(item => item.Property, new CustomComparer()); var customSortedCollection = collection.OrderBy(item => item.Property, new CustomComparer()); $vbLabelText $csharpLabel Here, CustomComparer is a class implementing the IComparer<T> interface, providing custom logic for comparing elements. Practical Example: Sorting Objects Sorting a List of Integers using System; using System.Linq; using System.Collections.Generic; class Program { static void Main() { List<int> numbers = new List<int> { 5, 2, 8, 1, 7 }; var sortedNumbers = numbers.OrderBy(num => num); Console.WriteLine("Sorted Numbers:"); foreach (var number in sortedNumbers) { Console.WriteLine(number); } } } using System; using System.Linq; using System.Collections.Generic; class Program { static void Main() { List<int> numbers = new List<int> { 5, 2, 8, 1, 7 }; var sortedNumbers = numbers.OrderBy(num => num); Console.WriteLine("Sorted Numbers:"); foreach (var number in sortedNumbers) { Console.WriteLine(number); } } } $vbLabelText $csharpLabel In this example, a list of integers is sorted in ascending order using OrderBy. Sorting a List of Strings using System; using System.Linq; using System.Collections.Generic; class Program { static void Main() { List<string> names = new List<string> { "Alice", "Charlie", "Bob", "David" }; var sortedNames = names.OrderBy(name => name); Console.WriteLine("Sorted Names:"); foreach (var name in sortedNames) { Console.WriteLine(name); } } } using System; using System.Linq; using System.Collections.Generic; class Program { static void Main() { List<string> names = new List<string> { "Alice", "Charlie", "Bob", "David" }; var sortedNames = names.OrderBy(name => name); Console.WriteLine("Sorted Names:"); foreach (var name in sortedNames) { Console.WriteLine(name); } } } $vbLabelText $csharpLabel This example demonstrates sorting a list of strings in ascending order alphabetically. Sorting a List of Custom Objects using System; using System.Linq; using System.Collections.Generic; class Person { public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } } class Program { static void Main() { List<Person> people = new List<Person> { new Person { FirstName = "John", LastName = "Doe", Age = 30 }, new Person { FirstName = "Alice", LastName = "Smith", Age = 25 }, new Person { FirstName = "Bob", LastName = "Johnson", Age = 35 } }; var sortedPeople = people.OrderBy(person => person.Age); Console.WriteLine("Sorted People by Age:"); foreach (var person in sortedPeople) { Console.WriteLine($"{person.FirstName} {person.LastName}, Age: {person.Age}"); } } } using System; using System.Linq; using System.Collections.Generic; class Person { public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } } class Program { static void Main() { List<Person> people = new List<Person> { new Person { FirstName = "John", LastName = "Doe", Age = 30 }, new Person { FirstName = "Alice", LastName = "Smith", Age = 25 }, new Person { FirstName = "Bob", LastName = "Johnson", Age = 35 } }; var sortedPeople = people.OrderBy(person => person.Age); Console.WriteLine("Sorted People by Age:"); foreach (var person in sortedPeople) { Console.WriteLine($"{person.FirstName} {person.LastName}, Age: {person.Age}"); } } } $vbLabelText $csharpLabel In this example, a list of custom Person objects is sorted based on the Age property in ascending order. The following output is visible in the console: Handling String Comparisons When dealing with string properties, you might want to ensure case-insensitive sorting: var sortedPeopleByName = people.OrderBy(person => person.LastName, StringComparer.OrdinalIgnoreCase); var sortedPeopleByName = people.OrderBy(person => person.LastName, StringComparer.OrdinalIgnoreCase); $vbLabelText $csharpLabel This example uses the StringComparer.OrdinalIgnoreCase to perform a case-insensitive sort based on the LastName property. Performance Considerations While LINQ provides a concise way to sort collections, it's essential to consider performance implications, especially for large datasets. For performance-critical scenarios, you might explore alternatives like sorting in-place using the List<T>.Sort method. Introducing IronPDF Discover IronPDF capabilities within the C# PDF library from Iron Software, which helps to read and generate PDF docs. It can convert formatted documents with style information easily to PDF. IronPDF can generate PDFs from HTML strings, or it can download the HTML from the URL and then generate PDFs. IronPDF shines when it comes to converting HTML to PDF, preserving all layouts and styles. It can generate PDFs from various web content, such as reports, invoices, and documentation. The tool works with HTML files, URLs, and HTML strings to create PDF files. using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 1. Convert HTML String to PDF var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"; var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // 2. Convert HTML File to PDF var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // 3. Convert URL to PDF var url = "http://ironpdf.com"; // Specify the URL var pdfFromUrl = renderer.RenderUrlAsPdf(url); pdfFromUrl.SaveAs("URLToPDF.pdf"); } } using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 1. Convert HTML String to PDF var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"; var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // 2. Convert HTML File to PDF var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // 3. Convert URL to PDF var url = "http://ironpdf.com"; // Specify the URL var pdfFromUrl = renderer.RenderUrlAsPdf(url); pdfFromUrl.SaveAs("URLToPDF.pdf"); } } $vbLabelText $csharpLabel Installation IronPDF can be installed using the NuGet package manager console or using the Visual Studio package manager. Install-Package IronPdf You can also install IronPDF using NuGet Package Manager by searching "ironpdf" in the search bar. Generating a PDF Using IronPDF Below is the code to generate a PDF report using an HTML string and IronPDF generator: // See https://aka.ms/new-console-template for more information using IronPdf; using System; using System.Collections.Generic; using System.Linq; class Person { public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } } class Program { static void Main() { List<Person> people = new List<Person> { new Person { FirstName = "John", LastName = "Doe", Age = 30 }, new Person { FirstName = "Alice", LastName = "Smith", Age = 25 }, new Person { FirstName = "Bob", LastName = "Johnson", Age = 35 } }; // Sort people by age var sortedPeople = people.OrderBy(person => person.Age); string name = "Sam"; var count = people.Count; // Generate an HTML string string content = $@"<!DOCTYPE html> <html> <body> <h1>Hello, {name}!</h1> <p>You have {count} people sorted by Age.</p> " + string.Join("\n", sortedPeople.Select(person => $"{person.FirstName} {person.LastName}, Age: {person.Age}")) + @" </body> </html>"; // Create a new PDF document and save it var pdfDocument = new ChromePdfRenderer(); pdfDocument.RenderHtmlAsPdf(content).SaveAs("personByAge.pdf"); } } // See https://aka.ms/new-console-template for more information using IronPdf; using System; using System.Collections.Generic; using System.Linq; class Person { public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } } class Program { static void Main() { List<Person> people = new List<Person> { new Person { FirstName = "John", LastName = "Doe", Age = 30 }, new Person { FirstName = "Alice", LastName = "Smith", Age = 25 }, new Person { FirstName = "Bob", LastName = "Johnson", Age = 35 } }; // Sort people by age var sortedPeople = people.OrderBy(person => person.Age); string name = "Sam"; var count = people.Count; // Generate an HTML string string content = $@"<!DOCTYPE html> <html> <body> <h1>Hello, {name}!</h1> <p>You have {count} people sorted by Age.</p> " + string.Join("\n", sortedPeople.Select(person => $"{person.FirstName} {person.LastName}, Age: {person.Age}")) + @" </body> </html>"; // Create a new PDF document and save it var pdfDocument = new ChromePdfRenderer(); pdfDocument.RenderHtmlAsPdf(content).SaveAs("personByAge.pdf"); } } $vbLabelText $csharpLabel Here we are first generating an HTML string from sortedPeople which is sorted in ascending order with all the formatting required for the reports. Then we use IronPDF to generate a PDF document. We use the RenderHtmlAsPdf method to convert the HTML string to a PDF document. Output The following output is available in the PDF: Licensing (Free Trial Available) A trial key can be obtained from IronPDF Trial License. This key needs to be placed in appsettings.json. "IronPdf.LicenseKey": "your license key" Provide your email to get a trial license. Conclusion The OrderBy method in C# is a versatile tool for sorting collections based on various criteria. Whether you're sorting in ascending or descending order, by single or multiple criteria, or using custom comparers, mastering OrderBy can significantly improve the clarity and efficiency of your code. Together with IronPDF library for generating PDF documents, it is a great combination for generating a beautifully formatted and sorted collection as a document. 자주 묻는 질문 C# OrderBy 메서드는 어떻게 작동하나요? LINQ 라이브러리의 일부인 C# OrderBy 메서드는 컬렉션의 요소를 오름차순으로 정렬합니다. 메서드 및 쿼리 구문 모두에 사용할 수 있으며 정수, 문자열 및 사용자 지정 개체를 처리할 수 있을 정도로 다재다능합니다. C#을 사용하여 데이터를 내림차순으로 정렬하려면 어떻게 해야 하나요? C#에서 데이터를 내림차순으로 정렬하려면 OrderByDescending 메서드를 사용할 수 있습니다. 이 메서드는 LINQ 라이브러리의 일부이며 다양한 정렬 요구에 따라 OrderBy를 보완합니다. C#에서 여러 필드를 기준으로 정렬할 수 있나요? 예, C#에서는 OrderBy를 ThenBy 또는 ThenByDescending과 함께 사용하여 여러 필드를 기준으로 정렬할 수 있습니다. 이를 통해 복잡한 정렬 기준을 설정할 수 있으므로 개발자는 여러 속성을 기반으로 컬렉션을 정렬할 수 있습니다. 사용자 지정 비교기란 무엇이며 C# 정렬에서 어떻게 사용되나요? C#의 사용자 지정 비교기는 정렬 중에 요소를 비교하기 위한 사용자 지정 로직을 제공하는 IComparer 인터페이스의 구현입니다. 이는 복잡한 객체를 정렬하거나 기본 정렬 동작이 특정 요구 사항을 충족하지 않을 때 유용합니다. IronPDF를 사용하여 C#으로 PDF를 생성하려면 어떻게 해야 하나요? C#에서 IronPDF를 사용하여 HTML 문자열, 파일 또는 웹 URL에서 PDF를 생성할 수 있습니다. IronPDF는 원본 콘텐츠의 레이아웃과 스타일을 유지하므로 보고서 및 송장과 같은 전문 문서를 만드는 데 이상적입니다. C# 프로젝트에 IronPDF를 설치하는 단계는 무엇인가요? IronPDF는 NuGet 패키지 관리자를 사용하여 C# 프로젝트에 설치할 수 있습니다. 콘솔에서 dotnet add package IronPdf 명령을 실행하거나 Visual Studio의 패키지 관리자를 사용하여 프로젝트에 추가할 수 있습니다. IronPDF는 PDF 생성을 위해 C# OrderBy와 어떻게 통합되나요? IronPDF는 C# OrderBy와 통합하여 정렬되고 형식이 지정된 PDF 보고서를 만들 수 있습니다. 렌더링하기 전에 OrderBy를 사용하여 데이터 컬렉션을 정렬하면 정렬 기준에 따라 PDF 출력이 구성되도록 할 수 있습니다. IronPDF는 웹 페이지 URL을 PDF로 변환할 수 있나요? 예, IronPDF는 URL의 웹 콘텐츠를 PDF 문서로 변환할 수 있습니다. 웹 페이지의 원래 레이아웃과 스타일을 유지하므로 웹 페이지를 보관하거나 인쇄 가능한 버전을 만드는 데 적합합니다. 커티스 차우 지금 바로 엔지니어링 팀과 채팅하세요 기술 문서 작성자 커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다. 커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다. 관련 기사 업데이트됨 12월 11, 2025 Bridging CLI Simplicity & .NET : Using Curl DotNet with IronPDF Jacob Mellor has bridged this gap with CurlDotNet, a library created to bring the familiarity of cURL to the .NET ecosystem. 더 읽어보기 업데이트됨 12월 20, 2025 RandomNumberGenerator C# Using the RandomNumberGenerator C# class can help take your PDF generation and editing projects to the next level 더 읽어보기 업데이트됨 12월 20, 2025 C# String Equals (How it Works for Developers) When combined with a powerful PDF library like IronPDF, switch pattern matching allows you to build smarter, cleaner logic for document processing 더 읽어보기 C# Dev Kit VS Code Extension (How It Works For Developers)MSTest C# (How It Works For Developers )
업데이트됨 12월 11, 2025 Bridging CLI Simplicity & .NET : Using Curl DotNet with IronPDF Jacob Mellor has bridged this gap with CurlDotNet, a library created to bring the familiarity of cURL to the .NET ecosystem. 더 읽어보기
업데이트됨 12월 20, 2025 RandomNumberGenerator C# Using the RandomNumberGenerator C# class can help take your PDF generation and editing projects to the next level 더 읽어보기
업데이트됨 12월 20, 2025 C# String Equals (How it Works for Developers) When combined with a powerful PDF library like IronPDF, switch pattern matching allows you to build smarter, cleaner logic for document processing 더 읽어보기