C# 리스트 (개발자를 위한 작동 방식)
리스트는 C#에서 데이터 컬렉션을 저장하고 조작하는 데 사용되는 다목적 및 동적 데이터 구조입니다. 그들은 강력하고 타입 안정적인 컬렉션 클래스와 강력하게 타입된 객체를 제공하는 System.Collections.Generic 네임스페이스의 일부입니다. 이 초급 친화적인 튜토리얼은 C# 리스트 사용의 기초, 요소 생성 및 추가, 지정된 인덱스 또는 첫 번째 발생 접근, 지정된 요소 수정 및 요소 제거와 같은 일반적인 사용 사례로 안내합니다.
리스트 생성
List 클래스를 사용하기 시작하려면 먼저 코드에 System.Collections.Generic 네임스페이스를 포함시켜야 합니다:
using System.Collections.Generic;
using System.Collections.Generic;
Imports System.Collections.Generic
일반 네임스페이스를 추가한 후에, 모든 요소의 데이터 유형을 꺾쇠 괄호(< >)로 지정하여 새로운 List 객체를 생성합니다. 여기 정수 리스트를 생성하는 방법의 예가 있습니다:
List<int> numbers = new List<int>();
List<int> numbers = new List<int>();
Dim numbers As New List(Of Integer)()
처음부터 몇 가지 초기 값으로 리스트를 초기화하거나 지정된 컬렉션으로 정의할 수도 있습니다:
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
리스트의 기본 초기 용량을 지정할 수도 있습니다. 지정된 초기 용량은 리스트의 기본 최대 용량입니다.
리스트의 메서드들
리스트에 요소 수 추가
List에 요소를 추가하려면 Add() 메서드를 사용하세요:
numbers.Add(1); // Adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1); // Adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1) ' Adds first element
numbers.Add(2)
numbers.Add(3)
지정된 컬렉션에서 요소 범위를 리스트에 추가하려면 AddRange 메서드를 사용할 수도 있습니다:
List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
Dim moreNumbers As New List(Of Integer) From {4, 5, 6}
numbers.AddRange(moreNumbers)
리스트 요소 접근하기
배열과 마찬가지로 인덱스를 사용하여 리스트의 개별 요소에 접근할 수 있습니다:
string firstFruit = fruits[0]; // "apple"
string secondFruit = fruits[1]; // "banana"
string firstFruit = fruits[0]; // "apple"
string secondFruit = fruits[1]; // "banana"
Dim firstFruit As String = fruits(0) ' "apple"
Dim secondFruit As String = fruits(1) ' "banana"
리스트는 0부터 시작하는 인덱스라는 점을 염두에 두십시오, 그래서 첫 번째 요소는 인덱스가 0입니다. 위의 예제는 해당 요소가 존재하면 문자열에 저장할 것입니다.
리스트 요소 수정하기
리스트의 요소를 수정하려면 원하는 인덱스에 있는 요소에 단순히 새 값을 할당하면 됩니다, 0부터 시작하는 인덱스임을 염두에 두십시오:
fruits[1] = "blueberry";
fruits[1] = "blueberry";
fruits(1) = "blueberry"
이제 fruits 목록의 두 번째 요소가 "블루베리"로 바뀌었습니다.
목록에서 요소 제거하기
리스트에서 요소를 제거하려면 첫 번째로 발생하는 지정된 요소를 제거하는 Remove 메서드를 사용할 수 있습니다:
fruits.Remove("apple");
fruits.Remove("apple");
fruits.Remove("apple")
또한, 지정된 인덱스의 요소를 제거하기 위해 RemoveAt 메서드를 사용할 수 있습니다:
fruits.RemoveAt(0);
fruits.RemoveAt(0);
fruits.RemoveAt(0)
리스트에서 모든 요소를 제거하려면 Clear 메서드를 사용하세요:
fruits.Clear();
fruits.Clear();
fruits.Clear()
목록에서 요소 찾기
리스트에 특정 요소가 포함되어 있는지 확인하려면 Contains() 메서드를 사용할 수 있습니다:
bool containsApple = fruits.Contains("apple"); // true
bool containsApple = fruits.Contains("apple"); // true
Dim containsApple As Boolean = fruits.Contains("apple") ' true
요소의 첫 번째 발생 위치의 인덱스를 찾으려면 IndexOf 메서드를 사용하세요:
int appleIndex = fruits.IndexOf("apple"); // 0
int appleIndex = fruits.IndexOf("apple"); // 0
Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0
요소가 발견되지 않으면, IndexOf는 -1을 반환합니다.
목록 순회하기
리스트의 요소를 반복하려면 foreach 루프를 사용할 수 있습니다:
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
For Each fruit As String In fruits
Console.WriteLine(fruit)
Next fruit
또한, 리스트의 요소 수를 반환하는 Count 속성과 함께 for 루프를 사용할 수도 있습니다:
for (int i = 0; i < fruits.Count; i++)
{
Console.WriteLine(fruits[i]);
}
for (int i = 0; i < fruits.Count; i++)
{
Console.WriteLine(fruits[i]);
}
For i As Integer = 0 To fruits.Count - 1
Console.WriteLine(fruits(i))
Next i
목록 정렬하기
리스트를 오름차순으로 정렬하려면 Sort 메서드를 사용하세요:
List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();
// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();
// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
Dim unsortedNumbers As New List(Of Integer) From {5, 2, 8, 1, 4}
unsortedNumbers.Sort()
' Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
내림차순으로 리스트를 정렬하려면, 사용자 정의 비교를 사용하여 Sort 메서드를 사용할 수 있습니다:
unsortedNumbers.Sort((a, b) => b.CompareTo(a));
// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort((a, b) => b.CompareTo(a));
// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort(Function(a, b) b.CompareTo(a))
' Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
더 복잡한 정렬을 위해 사용자 정의 IComparer 클래스를 구현하거나 LINQ(언어 통합 쿼리)를 사용할 수 있습니다. 이진 검색 알고리즘은 정렬된 목록에서 작동합니다.
리스트와 LINQ 사용하기
LINQ는 목록을 포함한 컬렉션에 강력한 쿼리와 변환을 수행할 수 있게 해줍니다. LINQ를 사용하려면 먼저 코드에 System.Linq 네임스페이스를 포함시켜야 합니다:
using System.Linq;
using System.Linq;
Imports System.Linq
다음은 목록에 대한 LINQ 쿼리의 몇 가지 예입니다:
목록 필터링
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
Dim evenNumbers As List(Of Integer) = numbers.Where(Function(x) x Mod 2 = 0).ToList()
목록의 요소 매핑(변환)
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
Dim fruitNamesUpperCase As List(Of String) = fruits.Select(Function(x) x.ToUpper()).ToList()
목록에서 최소값 및 최대값 찾기
int minValue = numbers.Min();
int maxValue = numbers.Max();
int minValue = numbers.Min();
int maxValue = numbers.Max();
Dim minValue As Integer = numbers.Min()
Dim maxValue As Integer = numbers.Max()
목록을 배열로 변환하기
리스트를 배열로 변환하려면 ToArray 메서드를 사용할 수 있습니다:
int[] numbersArray = numbers.ToArray();
int[] numbersArray = numbers.ToArray();
Dim numbersArray() As Integer = numbers.ToArray()
IronPDF를 사용하여 목록 데이터를 PDF로 내보내기
이 섹션에서는 IronPDF 라이브러리를 사용하여 리스트의 데이터를 PDF 파일로 내보내는 방법을 설명합니다. 이것은 보고서나 데이터의 인쇄 가능한 버전을 생성하고 싶을 때 유용할 수 있습니다.
먼저 프로젝트에 IronPDF NuGet 패키지를 다운로드하고 설치하십시오:
Install-Package IronPdf
그런 다음, 코드에 IronPdf 네임스페이스를 포함시킵니다:
using IronPdf;
using IronPdf;
Imports IronPdf
이제 문자열의 List을 HTML 테이블로 변환한 후 PDF 파일로 내보내는 간단한 함수를 만들어 봅시다:
using System.Collections.Generic;
using System.Text;
using IronPdf;
void ExportListToPdf(List<string> data, string pdfFilePath)
{
// Create an HTML table from the list data
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<table><tr><th>Item</th></tr>");
foreach (string item in data)
{
htmlBuilder.Append($"<tr><td>{item}</td></tr>");
}
htmlBuilder.Append("</table>");
// Convert the HTML table to a PDF using IronPDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
// Save the PDF to the specified file path
pdf.SaveAs(pdfFilePath);
}
using System.Collections.Generic;
using System.Text;
using IronPdf;
void ExportListToPdf(List<string> data, string pdfFilePath)
{
// Create an HTML table from the list data
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<table><tr><th>Item</th></tr>");
foreach (string item in data)
{
htmlBuilder.Append($"<tr><td>{item}</td></tr>");
}
htmlBuilder.Append("</table>");
// Convert the HTML table to a PDF using IronPDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
// Save the PDF to the specified file path
pdf.SaveAs(pdfFilePath);
}
Imports System.Collections.Generic
Imports System.Text
Imports IronPdf
Private Sub ExportListToPdf(ByVal data As List(Of String), ByVal pdfFilePath As String)
' Create an HTML table from the list data
Dim htmlBuilder As New StringBuilder()
htmlBuilder.Append("<table><tr><th>Item</th></tr>")
For Each item As String In data
htmlBuilder.Append($"<tr><td>{item}</td></tr>")
Next item
htmlBuilder.Append("</table>")
' Convert the HTML table to a PDF using IronPDF
Dim renderer = New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())
' Save the PDF to the specified file path
pdf.SaveAs(pdfFilePath)
End Sub
이 함수를 사용하려면 단순히 목록과 원하는 PDF 파일 경로로 호출하십시오:
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
ExportListToPdf(fruits, "Fruits.pdf")
이는 IronPDF를 사용하여 HTML을 PDF로 변환함을 통해 과일 목록이 있는 테이블을 포함하는 "Fruits.pdf"라는 PDF 파일을 생성할 것입니다. HTML 테이블에 사용자 정의 스타일을 추가하거나 PDF에 추가 콘텐츠를 포함시키는 것처럼 필요에 맞게 ExportListToPdf 함수를 수정할 수 있습니다.

결론
이 초급자 친화적인 튜토리얼에서는 C# 목록 사용의 기본을 다루고 목록 데이터를 PDF 파일로 내보내기 위해 IronPDF를 통합하는 방법을 보여줍니다. IronPDF을 프로젝트에 포함함으로써 C# 프로젝트에서 쉽게 보고서, 송장 또는 기타 인쇄 가능한 문서를 생성할 수 있습니다.
IronPDF는 무료 체험을 제공하여 구매 전에 그 기능을 테스트할 수 있게 합니다.
자주 묻는 질문
C#에서 리스트를 어떻게 생성하나요?
C#에서 리스트를 생성하려면 System.Collections.Generic 네임스페이스를 포함해야 합니다. 그 후, 꺾쇠 괄호 안에 데이터 유형을 지정하여 리스트를 선언할 수 있습니다. 예: List
C# 리스트에 요소를 추가하는 데 사용되는 메서드는 무엇인가요?
개별 요소를 추가하는 Add() 메서드와 요소의 컬렉션을 추가하는 AddRange() 메서드를 사용하여 C# 리스트에 요소를 추가할 수 있습니다.
C# 리스트를 PDF 파일로 내보내는 방법은 무엇인가요?
C# 리스트를 PDF 파일로 내보내려면 IronPDF 라이브러리를 사용할 수 있습니다. 리스트 데이터를 HTML 테이블 형식으로 변환한 후 IronPDF를 사용하여 PDF로 렌더링하세요.
C# 리스트를 정렬하는 가장 좋은 방법은 무엇인가요?
C# 리스트를 오름차순으로 정렬하려면 Sort() 메서드를 사용할 수 있습니다. 내림차순으로 정렬하려면 사용자 정의 비교 대리자를 사용하여 Sort()를 사용할 수 있습니다.
C# 리스트의 요소를 어떻게 접근하나요?
C# 리스트의 요소는 배열과 유사하게 인덱스를 사용하여 접근할 수 있습니다. 리스트는 0부터 시작하는 인덱스이므로 리스트의 위치를 사용하여 요소를 검색할 수 있습니다.
C# 리스트에서 요소를 제거하는 옵션은 무엇인가요?
C# 리스트에서 요소를 제거하려면 특정 요소를 제거하는 Remove() 메서드, 특정 인덱스를 제거하는 RemoveAt() 메서드, 모든 요소를 제거하는 Clear() 메서드를 사용할 수 있습니다.
C# 리스트와 함께 LINQ를 어떻게 활용할 수 있나요?
LINQ는 C# 리스트와 함께 사용되어 필터링, 매핑, 최소값 및 최대값 찾기 등 강력한 쿼리와 변환을 효율적으로 수행할 수 있습니다.
C# 리스트를 배열로 변환하는 방법은 무엇인가요?
C# 리스트를 배열로 변환하려면 ToArray() 메서드를 사용하여 리스트의 요소를 포함하는 새 배열을 생성할 수 있습니다.
C# 리스트의 일반적인 사용 사례는 무엇인가요?
C# 리스트는 데이터의 동적 컬렉션 관리, LINQ를 이용한 복잡한 쿼리 수행, IronPDF와 같은 라이브러리를 사용한 보고서 또는 문서 생성에 일반적으로 사용됩니다.
C# 리스트의 요소를 어떻게 반복하나요?
foreach 루프를 사용하여 간단한 반복, for 루프를 사용하여 인덱스가 필요한 경우 반복할 수 있습니다.




