Zmiana pola danego elementu listy

0

Mam taką klasę:

class UploadMethodAccount
{
	public string _login { get; set; }
	public string _password { get; set; }
	public bool _active { get; set; }

	public UploadMethodAccount(string login, string password, bool active)
	{
		_login = login;
		_password = password;
		_active = active;
	}
}}

W innym miejscu kodu programu stworzyłem listę:

List<UploadMethodAccount> uploadMethodAccountList = new List<UploadMethodAccount>();

i dodaję do niej elementy:

uploadMethodAccountList.Add(new UploadMethodAccount(loginLineWithoutL, passwordLineWithoutP, true));

Chciałbym teraz (w zależności od spełnionego warunku) móc zmienić np. pole _login danego elementu listy.

Spróbowałem w ten sposób:

getUploadMethodEmails()[1]._login = "newLoginForIndex1";

ale po wyświetleniu:

MessageBox.Show(getUploadMethodEmails()[1]._login);

nadal pozostaje stara wartość. Jak ją zmienić?

0

Metoda set() ?

1

Pokaż metodę getUploadMethodEmails(), założę się, że tworzysz tam nową listę i zwracasz za każdym razem nowy obiekt.

0
private List<UploadMethodAccount> getUploadMethodEmails()
{
	List<UploadMethodAccount> uploadMethodAccountList = new List<UploadMethodAccount>();
	using (StreamReader sr = new StreamReader(file))
	{
		string line;
		while ((line = sr.ReadLine()) != null)
		{
			//operacje na pliku
			uploadMethodAccountList.Add(new UploadMethodAccount(loginLineWithoutL, passwordLineWithoutP, true));
		}
	}
	return uploadMethodAccountList;
}
2

Tak jak myślałem. Za każdym razem tworzysz nową listę więc każde wywołanie funkcji getUploadMethodEmails() zwraca Ci początkowe wartości. Wynik tej funkcji musisz zapisać do jakieś zmiennej/pola i dopiero modyfikować tą zmienną/pole.

0

nawet mi to do głowy nie przyszło :)
już działa, dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1