---
id: csharp-arrays-sort
title: "C# Sort Arrays"
category: "Programming_Language"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["Array.Sort", "System.Linq Max Min Sum", "C# 배열 정렬"]
duplicate_of: ""
source_trust_level: "B"
confidence_score: 0.82
created_at: 2026-07-04
updated_at: 2026-07-04
review_reason: ""
merge_history: []
tags: ["csharp", "programming-language", "w3schools", "arrays", "sort", "linq"]
raw_sources: ["https://www.w3schools.com/cs/cs_arrays_sort.php"]
applied_in: []
github_commit: ""
---

# [[CSharp Sort Arrays]]

## 🎯 한 줄 통찰 (One-line insight)
`Array.Sort(cars)` mirrors C++'s `sort()` from `<algorithm>` in spirit (both sort in place, ascending by default, work for strings and numbers alike) — but C#'s aggregate helpers (`myNumbers.Max()`, `.Min()`, `.Sum()`) come from a SEPARATE namespace (`System.Linq`) that must be explicitly imported with its own `using` statement, meaning basic sorting is a core language feature (`Array.Sort`) while summary statistics are an OPT-IN library extension — a modularity split C++'s `<algorithm>` (which bundles `sort()`, `min_element()`, `max_element()` all in one header) doesn't make. [S1]

## 🧠 핵심 개념 (Core concepts)
- **`Array.Sort(arrayName)`** — sorts an array in place, alphabetically for strings or ascending for numbers; static method on the `Array` class. [S1]
- **`System.Linq` namespace** — must be explicitly imported (`using System.Linq;`) to unlock extension methods like `.Max()`, `.Min()`, `.Sum()` directly on array instances. [S1]
- **`.Max()` / `.Min()` / `.Sum()`** — instance-style method calls on the array itself (`myNumbers.Max()`), not static calls through a class name like `Array.Sort()`. [S1]

## 📖 세부 내용 (Details)
- String sort: `string[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; Array.Sort(cars); foreach (string i in cars) { Console.WriteLine(i); }` → alphabetical order. [S1]
- Int sort: `int[] myNumbers = {5, 1, 8, 9}; Array.Sort(myNumbers); foreach (int i in myNumbers) { Console.WriteLine(i); }` → ascending order. [S1]
- LINQ aggregates (requires `using System.Linq;` at the top of the file): `int[] myNumbers = {5, 1, 8, 9}; Console.WriteLine(myNumbers.Max()); Console.WriteLine(myNumbers.Min()); Console.WriteLine(myNumbers.Sum());` → 9, 1, 23. [S1]

## ⚖️ 모순 및 업데이트 (Contradictions & updates)
- **정렬은 핵심 기능, 집계 함수는 별도 네임스페이스 opt-in**: C++의 `<algorithm>`은 sort()/min_element()/max_element()를 한 헤더에 모두 묶어 제공했지만, C#은 `Array.Sort()`는 기본으로 쓸 수 있는 반면 Max()/Min()/Sum()은 `System.Linq`라는 별도 네임스페이스를 명시적으로 import해야만 쓸 수 있다는 점이 확인됨 — 기능 모듈화 방식이 C++와 다름. [S1]
- **호출 방식도 다름**: `Array.Sort(cars)`는 클래스 이름을 통한 정적 호출이지만, `myNumbers.Max()`는 배열 인스턴스 자체에 점(.)으로 붙는 확장 메서드 호출이라는 점에서 스타일이 다름. [S1]

## 🛠️ 적용 사례 (Applied in summary)
문자열 배열과 정수 배열을 각각 Array.Sort()로 정렬하고, System.Linq를 import해 Max/Min/Sum을 구하는 두 예제가 원문에서 직접 실전 활용 사례로 제시됨. [S1]

## 💻 코드 패턴 (Code patterns)
Array.Sort() vs. System.Linq aggregate methods — different import requirements (C#):
```csharp
using System;
using System.Linq;   // required for Max/Min/Sum

int[] myNumbers = {5, 1, 8, 9};
Array.Sort(myNumbers);              // core feature, no extra using needed
Console.WriteLine(myNumbers.Max()); // 9 -- requires System.Linq
Console.WriteLine(myNumbers.Min()); // 1
Console.WriteLine(myNumbers.Sum()); // 23
```

## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body)
- **신뢰 점수:** 0.82
- **중복 검사 결과:** 신규 생성 (New discovery)

## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[C# Tutorial]]
- **관련 개념:** [[CSharp Arrays Loop]], [[CSharp Arrays Multi]], [[CPP Algorithms]]
- **참조 맥락:** Arrays 섹션의 마지막 챕터 — Multidimensional Arrays 챕터로 이어짐.

## 📚 출처 (Sources)
- [S1] W3Schools — C# Sort Arrays — https://www.w3schools.com/cs/cs_arrays_sort.php

## 📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "C# Sort Arrays" page (Astra wiki-curation, P-Reinforce v3.1 format).
