안녕하세요.
선언한 클래스의 속성값을 사용자가 입력한 값과 비교해 리스트에 이미있다면 이미 존재함을 알려주고
없다면 입력한 값을 리스트에 추가하려합니다.
예를 들면
class People {
public string name;
//생성자
}
class Program {
static void Main(string[] args) {
List<People> PeopleList = new List<People>();
People p = new Peolple();
p.name = Console.ReadLine(); // 사용자에게 입력받음
foreach( var item in PeopleList) {
if (item.name == p.name) // 리스트 객체의 name과 방금 입력한 값이 같을 경우
{ Console.WriteLine("이미 존재");}
else // 없다면
{ p.Add(p)} // 리스트에 객체 추가
}
}
}
이런식으로 짜봣는데 정상적으로 동작을 안하더라구요.
이것저것 바꿔가며 시도해봤는데도 여전하네요...
어떤 방법이 있을까요?
입력받아서 넣은 p.name에 값 제대로 들어가는지 디버깅해봣음?
People p = new Peolple(); p.name = Console.ReadLine(); // 사용자에게 입력받음
굳이 왜 이렇게 넣는ㄴ것임..?
p.name에는 정상적으로 값 들어가요
그냥 1번실행하고 끝나는 코드라 확인을 못하는거 아님?
이것저것 바꿔서 해봤는데 foreach문 중에 문제가 있는거 같은데 잘 모르겟네요 ㅠㅠ
p.Add(p)에서 p 가 PeopleList면 에러나는게 맞음. 쉽게생각해서 foreach문돌리는중엔 추가 못한다고 생각하셈
제대로 알아보려면 iterator 검색 ㄱ
힌트 감사합니다 !!
set 쓰면 안되노 게이야
조건을 어떻게 할까요?
기존 리스트에 있는 name이랑 입력한 값을 비교해야하는데
기존 리스트 값 전체들을 어떻게 불러올지 모르겟네요