728x90
안녕하세요. 코딩 및 개발에 대한 팁을 알려드리는 대디동동의 동코딩동 시간입니다.
c# 반복문 foreach를 사용할 경우 지금 몇 번째인지 확인해야 하는 경우 어떻게 하는지 설명하니
끝까지 읽고 레벨업 하기 바랍니다.
C# 반복문에서 인덱스 (순번, 번호) 가져오기
C#에서 제공하는 반복문은 for, foreach, while, do while 등이 있는데
while, do while은 클래스 변수의 반복문으로 잘 사용하지 않아
대표적인 foreach와 for를 이용하는 방법을 설명하겠습니다.
첫 번째 for 반복문 사용할 경우
for 반복문은 가장 많이 사용하는 반복문입니다.
순번을 가져오기 위해서는 순번을 표시할 변수를 하나 선언하고,
반복문안에서 해당 변수에 +1 하여 순번을 늘리면 되는 간단한 방법입니다.
하지만, 실무에서는 클래스를 만들고 클래스 변수를 반복하는 경우가 대부분이기 때문에
아래와 같은 클래스가 있다고 가정하여 설명하겠습니다.
클래스 처리 및 변수 저장
//클래스 정의 및 변수 저장
List<Car> lstCars = new List<Car>();
Car car1 = new Car();
car1.Company = "Kia";
car1.Name = "Niro";
lstCars.Add(car1);
Car car2 = new Car();
car2.Company = "Hyundai";
car2.Name = "Sonata";
lstCars.Add(car2);
Car car3 = new Car();
car3.Company = "Genesis";
car3.Name = "GV80";
lstCars.Add(car3);
for 문 이용한 예제
//for문 사용할 경우
for (int i = 0; i < lstCars.Count; i++)
{
System.Diagnostics.Debug.WriteLine(i + " = " + lstCars[i].Name + " " + lstCars[i].Company);
}
//처리결과
0 = Niro,Kia
1 = Sonata, Hyundai
2 = GV80, Genesis
두 번째, foreach 반복문 사용할 경우
foreach 반복문은 Model 클래스의 Select를 이용하면 인덱스 값을 구할 수 있습니다.
//순번이 필요 없을 때
foreach (var item in lstCars)
{
System.Diagnostics.Debug.WriteLine(item.Name + " " + item.Company);
}
//처리결과
Niro,Kia
Sonata, Hyundai
GV80, Genesis
//순번이 필요할 때
foreach (var item in lstCars.Select((val, index) => new { val, index }))
{
var car = item.val;
var i = item.index;
System.Diagnostics.Debug.WriteLine(i + " = " + car.Name + " " + car.Company);
}
//처리결과
0 = Niro,Kia
1 = Sonata, Hyundai
2 = GV80, Genesis
인덱스 값이 0 부터 시작인 것만 주의하면 됩니다.
실무에서는 for문도 많이 사용하지만,
객체 지향 프로그램에서는 객체를 저장하는 변수를 많이 사용하며
C#에는 Linq라는 강력한 도구가 있어서 foreach를 사용하여 코딩하면
추후 확장 및 유지보수에 유리하니 가급적 foreach를 사용하는 것을 추천하니
제 게시물을 참고해서 Level Up ~ 하시기 바랍니다.
반응형
'팁 & 노하우 > C#' 카테고리의 다른 글
Vue js 3, v-html button click event 처리 (버튼 클릭 이벤트) (0) | 2024.02.26 |
---|---|
영화진흥위원회 오픈API 활용 C#, .net 8.0, MVC, Vue.js (0) | 2024.02.20 |
C# 날짜 시간 변환 format 과 DateTime.ParseExact 만 알면 뭐든지 해결 (0) | 2023.11.06 |
C# (asp.net) 날짜 차이, 시간 차이 구하기 - 초보 개발자 레벨 업~ (1) | 2023.10.19 |
C# 차집합, 교집합, 합집합을 활용한 프로그램 예제 (0) | 2023.09.29 |