IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

C# OrderBy (Geliştiriciler için Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

Sıralama, herhangi bir programlama dilindeki temel işlemlerden biridir ve C# OrderBy yöntemi, koleksiyon içindeki öğeleri düzenlemek için güçlü bir araçtır. Array, liste veya diğer enumerateable yapılarla çalışırken, OrderBy'ı kullanmayı anlamak, kodunuzun okunabilirliğini ve işlevselliğini büyük ölçüde artırabilir.

Bu makalenin ilerleyen bölümlerinde Iron Software'in IronPDF kütüphanesini tanıtacak ve biçimlendirilmiş ve sıralanmış PDF'ler üretmek için LINQ OrderBy yöntemini ve IronPDF'i nasıl kullanabileceğimizi ele alacağız.

LINQ OrderBy Yöntemi Nedir?

C# içindeki LINQ (Dil Tümleşik Sorgu) kütüphanesinin bir parçası olan OrderBy yöntemi, öğeleri artan sırayla sıralamak için özel olarak tasarlanmıştır; yani verileri sıralamak için varsayılan yol olduğundan, artan anahtar kelimesine ihtiyaç yoktur.

LINQ OrderBy Yöntemi Nasıl Kullanılır

Verileri Artan Sırayla Sıralama

C# dilinde bu yöntemi uygulamanın iki yolu vardır: yöntem sözdizimi veya sorgu sözdizimi aracılığıyla. Yöntem sözdizimini kullanacağız çünkü bu daha basit:

var sortedCollection = collection.OrderBy(item => item.OrderByProperty);

Burada, collection sıralamak istediğiniz kaynak koleksiyondur ve OrderByProperty, öğeleri sıralamak istediğiniz özellik veya ifadedir. OrderBy içindeki lambda ifadesi sıralama kriterini belirtir.

Verileri Azalan Sırayla Sıralama

Azalan sırada sıralamak için, metod tabanlı söz dizimini kullanarak OrderByDescending yöntemini kullanabilirsiniz:

var sortedCollectionDesc = collection.OrderByDescending(item => item.OrderByProperty);

Birden Çok Kritere Göre Veri Sıralama

Gerçek dünya senaryolarında, bir koleksiyonu genellikle birden çok kritere dayalı olarak sıralamanız gerekir. Bu, birden çok ThenBy veya ThenByDescending çağrısını zincirleyerek sağlanabilir:

var multiSortedCollection = collection
    .OrderBy(item => item.OrderByProperty1)
    .ThenByDescending(item => item.OrderByProperty2);

Bu örnekte, koleksiyon ilk önce artan sırayla OrderByProperty1 ile sıralanır. Ardından, aynı OrderByProperty1 değerine sahip öğeler için, OrderByProperty2 ile azalan sırayla sıralanır.

Özel Karşılaştırıcılar

Daha karmaşık sıralama ihtiyaçları için, özel karşılaştırıcılar kullanabilirsiniz. OrderBy yöntemi, bir IComparer<t> uygulaması geçirmenizi sağlar, aşağıdaki örnekte gösterildiği gibi:

var customSortedCollection = collection.OrderBy(item => item.Property, new CustomComparer());

Burada, CustomComparer, IComparer<t> arayüzünü uygulayan bir sınıftır ve öğeleri karşılaştırmak için özel bir mantık sağlar.

Pratik Örnek: Nesneleri Sıralama

Tam Sayı Listesini Sıralama

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);
        }
    }
}

Bu örnekte, bir tamsayı listesi, OrderBy kullanılarak artan sırayla sıralanır.

Bir Dizi Dizesini Sıralama

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);
        }
    }
}

Bu örnek, bir dizi dizesini alfabetik olarak artan sırayla sıralamayı gösterir.

Özel Nesneler Listesini Sıralama

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}");
        }
    }
}

Bu örnekte, özel Person nesnelerinden oluşan bir liste, Age özelliğine göre artan sırayla sıralanır.

Konsolda görünen çıktı aşağıdaki gibidir:

C# Orderby (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Özel nesneleri sıralayan önceki kodun çıktısı

Dize Karşılaştırmalarıyla Başa Çıkma

Dize özellikleriyle çalışırken, büyük/küçük harfe duyarsız sıralama sağlamak isteyebilirsiniz:

var sortedPeopleByName = people.OrderBy(person => person.LastName, StringComparer.OrdinalIgnoreCase);

Bu örnek, LastName özelliğine dayalı olarak büyük/küçük harf duyarsız bir sıralama yapmak için StringComparer.OrdinalIgnoreCase kullanır.

Performans Dikkat Edilecek Hususlar

LINQ, koleksiyonları sıralamak için özlü bir yol sağlarken, özellikle büyük veri setleri için performans etkilerini dikkate almak önemlidir. Performans açısından kritik senaryolarda, List<t>.Sort yöntemi kullanarak yerinde sıralama gibi alternatifleri keşfedebilirsiniz.

IronPDF Tanıtımı

IronPDF yeteneklerini C# PDF kütüphanesi içinde keşfedin, bu da PDF belgelerini okumaya ve üretmeye yardımcı olur. Biçimlendirilmiş belgeleri stil bilgileri ile kolayca PDF'ye dönüştürebilir. IronPDF, HTML dizelerinden PDF üretebilir veya URL'den HTML'yi indirip PDF'ler üretebilir.

HTML'yi PDF'ye dönüştürmede IronPDF parlıyor, tüm düzenleri ve stilleri koruyarak. Çeşitli web içeriğinden, raporlar, faturalar ve belgeler gibi PDF'ler üretebilir. Araç, PDF dosyaları oluşturmak için HTML dosyaları, URL'ler ve HTML dizeleri ile çalışır.

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");
    }
}

Kurulum

IronPDF, NuGet paket yöneticisi konsolu veya Visual Studio paket yöneticisi kullanılarak kurulabilir.

PM > Install-Package IronPdf

IronPDF'i NuGet Paket Yöneticisi kullanarak, arama çubuğuna 'IronPDF' yazarak yükleyebilirsiniz.

C# Orderby (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - NuGet Paket Yöneticisi aracılığıyla IronPDF'in kurulumu

IronPDF Kullanarak PDF Oluşturma

Aşağıda, bir HTML dizesi ve IronPDF üreteci kullanarak PDF raporu oluşturma kodu bulunmaktadır:

// 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");
    }
}

Burada, raporlar için gerekli tüm biçimlendirmelerle birlikte artan sırayla sıralanmış sortedPeople'den bir HTML dize üretmekteyiz. Ardından, IronPDF kullanarak bir PDF belgesi üretiyoruz. HTML dizgesini PDF belgesine dönüştürmek için RenderHtmlAsPdf yöntemini kullanıyoruz.

Çıktı

PDF'de mevcut olan çıktı aşağıdaki gibidir:

C# Orderby (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - Önceki koddan elde edilen PDF çıktısı

Lisanslama (Ücretsiz Deneme Mevcuttur)

Deneme anahtarı IronPDF Deneme Lisansı üzerinden alınabilir. Bu anahtar appsettings.json dosyasına yerleştirilmelidir.

"IronPdf.LicenseKey": "your license key"
JSON

Deneme lisansı almak için e-posta adresinizi sağlayın.

Sonuç

C# dilindeki OrderBy yöntemi, çeşitli kriterler baz alınarak koleksiyonları sıralamak için çok yönlü bir araçtır. Artan veya azalan sırayla, tekli veya çoklu kriterlere göre sıralama yapma veya özel karşılaştırıcılar kullanılması gereken durumlar olsun, OrderBy'ı ustalıkla kullanmak, kodunuzun netliğini ve verimliliğini önemli ölçüde artırabilir.

IronPDF kütüphanesi ile PDF belgeleri üretmek birlikte, bir belge olarak güzel biçimlendirilmiş ve sıralanmış bir koleksiyon oluşturmak için harika bir kombinasyondur.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez