Odwołanie do tej samej funkcji wewnątrz pętli

0

(1) Mam liste obiektów "datas" która przechowuje ustawienia początkowe.
(2) Ustawienia definiują który obszar xml będzie przeszukiwany
(3) Nody XML definiują które wartości obiektu mają być zmienione,

Pytanie: w jaki sposób zaimplementować tylko raz proocedurę modyfikacji obiektów?
Obecnie wygląda to tak:

XDocument xdocument;
XElement xelement;
IEnumerable<XElement> new_datas;

XElement xelement;

foreach (var c in datas)
{
	// wczytaj plik main.xml
	
	xdocument = XDocument.Load("main.xlm");
	new_datas = xdocument.Elements();
	
	foreach (var d in new_datas)
	{
		//zestaw tych samych instrukcji modyfikujacych obiekt:
		//o ile wystąpi rozkaz zmiany parametru w pliku:
		try
		{
			c.xray += int.Parse(d.Element("X-ray").Value);
		}
		catch {}
		//...
		//kolejne instrukcje
	}
	
	// wczytaj plik mod1.xml, tylko 1 wybor mozliwy
	
	xelement = XElement.Load("mod1.xlm");
	new_datas = xelement.Elements();
	
	int i = 0;
	
	foreach (var d in new_datas)
	{
		//zestaw tych samych instrukcji modyfikujacych obiekt:
		//o ile wystąpi rozkaz zmiany parametru w pliku:
		if (c.mod1 == i)
		{
			try
			{
				c.xray += int.Parse(d.Element("X-ray").Value);
			}
			catch {}
			//...
			//kolejne instrukcje
		}
		i++;
	}	
	
	// wczytaj plik mod2.xml, molziwy wieokrotny wybor
	
	xelement = XElement.Load("mod2.xlm");
	new_datas = xelement.Elements();
	
	i = 1;
	
	foreach (var d in new_datas)
	{
		if (c.lista[i] == 1)
		{
			//zestaw tych samych instrukcji modyfikujacych obiekt:
			//o ile wystąpi rozkaz zmiany parametru w pliku:
			try
			{
				c.xray += int.Parse(d.Element("X-ray").Value);
			}
			catch {}
			//...
			//kolejne instrukcje
		}
		i++;
	}	
}

"Zestaw tych samych instrukcji" zawiera modyfikatotry obiektu w zależności od obecności i wartości nodów w xml.
Jest ich ok. 100, więc powtarzanie ich 3x jest bez sensu, nie mówiąc o ryzyku błędu.

1

Zrób z tego osobną metodę?

0
Juhas napisał(a):

Zrób z tego osobną metodę?

W jaki sposób?
Działam na pojedynczym obiekcie c i d, a do wykonania metody wymagany jest raz xdocument a raz xelement, deklarowane wcześniej?

0

A słyszałeś o parametrach metod? :/

0

Zdefiniuj parametr typu XContainer.

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