
Dotazovací jazyk LINQ - jak realizovat řešení
Ahoj,
jsem tu znova a tentokrát naposledy. Mám dotaz na řešení dílčího problému.
Mám dvě LINQové proměnné, které obsahují položky.
Každá položka obsahuje SKUPINU a ČÍSLO.
Řekněme, že položka vypadá takto:
public class CustomClass
{
public string SKUPINA { get; set; }
public int CISLO { get; set; }
}
A těchto položek mám dvě LINQ kolekce nějak takto:
var list1 = new List<CustomClass> {
new CustomClass { SKUPINA = "a", CISLO = 100 },
new CustomClass { SKUPINA = "a", CISLO = 101 },
new CustomClass { SKUPINA = "c", CISLO = 200 },
new CustomClass { SKUPINA = "d", CISLO = 300 }
};
var list2 = new List<CustomClass> {
new CustomClass { SKUPINA = "a", CISLO = 109 },
new CustomClass { SKUPINA = "b", CISLO = 400 },
new CustomClass { SKUPINA = "e", CISLO = 500 },
new CustomClass { SKUPINA = "f", CISLO = 600 }
};
A potřebuji dosáhnout následujícího:
Abych získal třetí kolekci, která bude obsahovat pouze to, co je v kolekci list2 a co je navíc v kolekci list1.
Výsledkem by tedy měly být tyto položky (tato kolekce):
new CustomClass { SKUPINA = "a", CISLO = 102 },
new CustomClass { SKUPINA = "b", CISLO = 400 },
new CustomClass { SKUPINA = "e", CISLO = 500 },
new CustomClass { SKUPINA = "f", CISLO = 600 }
Tento problém tedy vypadá v podstatě hodně jednoduše, že vezmeme List2 a přidáme k němu to, co obsahuje List1 navíc.
Takovouto kolekci již mám.
Toto umím provést, ale jde o to, aby vlastnost CISLO pokračovala tam, kde v Listu1 zkončilo číslování.
Což jak vidíme bylo v list1 číslo 101, proto ve výsledné kolekci je to číslo 102.
Toto se ale týká samozřejmě jen společných skupin.
Pokud tento dotaz zapadne, bude uzamčen a nebo smazán, nebudu se zlobit
Díky za přečtení.
Kam ti zmizely skupiny "c" a "d" z list1? Co se má stát, když tím přečíslováním dojde ke kolizi s jiným číslem? Skupinu "a" máš v list1 dvakrát pod jiným číslem, to tak má být?
BTW: "LINQová proměnná" je nesmyslný pojem, stejně jako "LINQ kolekce"
Takto ten výsledný příklad je správně.
c a d reprezentuje staré součástky, které byly nahrazeny a nebudou se používat (v novém návrhu).
Možná jsem to špatně napsal.
a použity budou jen součástky z list2, ale pokud bude užita skupina z původního listu (návrhu),
musí zůstat zachováno číslování (ta inkrementace).
Toto reprezentuje ten uvedený příklad.
Klidně se ptej dál, pokud to takto není srozumitelné
.
No to je úžasné. Hned to jdu testovat.