C#-ban hogyan lehet egyesíteni több listát?
Van egy metódus, aminek a visszatérési érteke egy List<string>.
Van egy osztályom, mely tartalmaz adattagokat (pl. public string nev {get;set;}) és egy listát (pl. List<pelda> lista...). Ezt a listát szeretném feltölteni adattagoknak megfelelően a függvény meghívásával.
Az egyetlen ötlet ami eszembe jutott, hogy több listát készítek. Például így: List<string> nevek = Fuggveny("nev"); List<string> kor = Fuggveny("kor"); stb. Ez a megoldás persze több sebből is vérzik és ezt szeretném elkerülni.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
A függvény egy letöltött html fájlból szedi ki a szükséges adatokat Regex használata nélkül.
Esetleg ha van jobb ötleted, kérlek ne tartsd magadban.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Ilyesmire gondolsz? Ha nem, akkor tényleg írd már le érthetően, hogy mit szeretnél. És ez nem szép megoldás, pl. a "Fuggveny"-nek kéne a megfelő objektum listát visszaadnia.
class Szemely
{
public List<Szemely> Lista { get; } = new List<Szemely>();
public string Nev { get; set; }
public int Kor { get; set; }
public string Magassag { get; set; }
public Szemely(string nev, int kor, string magassag)
{
Nev = nev;
Kor = kor;
Magassag = magassag;
var nevek = Fuggveny(nameof(Nev)).GetEnumerator();
var korok = Fuggveny(nameof(Kor)).GetEnumerator();
var magassagok = Fuggveny(nameof(Magassag)).GetEnumerator();
while (nevek.MoveNext() && korok.MoveNext() && magassagok.MoveNext())
{
Lista.Add(new Szemely(nevek.Current, int.Parse(korok.Current), magassagok.Current));
}
}
private static bool vótmá = false;
private List<string> Fuggveny(string propertyName)
{
if (vótmá) return new List<string>();
// dummy adatok
switch (propertyName)
{
case nameof(Nev):
return new List<string> {"Béla", "Józsi", "Zsombor"};
case nameof(Kor):
return new List<string> {"30", "25", "42"};
case nameof(Magassag):
vótmá = true;
return new List<string> {"150", "190", "170"};
default:
throw new NotSupportedException("Invalid property name:" + propertyName);
}
}
}
class Program
{
static void Main(string[] args)
{
var x = new Szemely("Éva,", 62, "175");
}
}
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Nem mond ellent az OOP-nek ti nem értetek hozzá :) Ez egy mesteri meg nem értett kortárs műalkotás amivel igazából ő sem tudja mit kezdjen, de ő nagy fejlesztő és vágja az OOP-t mert megtudja írni a getter-settert , de egy listába feldolgozni az elemeket már képtelen.
Sok ponton elgondolkodtató:
Mit akar ?
Tulajdonképpen mi a problémája ?
Most egy objektumot nem tud létrehozni vagy egy listát objektumokkal feltölteni ?
Egy adattal teli listából ha rendesen van kimentve megint csak nem nehéz objektumot létrehozni hiszen vigégiterálsz és kiszórod mi hova való. No de akkor minek a lista az osztályban ? Még ha statikus lenne talán lenne értelme hogy minden alkalommal ha elkészül egy új hozzáadja magát a listához. De így minden egyes példány rendelkezni fog egy üres listával.
De mit is ért ehhez a halandó földi ember ezekhez a dolgokhoz a lényeg ő ért az OOP-hez. Nem ma kezdte hanem holnap lesz egy napja :)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
"ellentmond az OOP elveinek"
Ez hülyeség... Ezt hívják fának.
A .NET framework is szar mert az XmlEhementnek vannak XmlElement gyerekei? Nem....
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!