[c#] Lord Orion che ama il c sciarp
Codice minchione a seguire...
vorrei in pratica data una lista di oggetti, che in questo caso contiene 3 stringhe (e non tre numeri, bada bene viva la facilità), fare in modo che
gli oggetti della lista siano ordinati in base non a Testo (alfabetically fregacazzo), ma per Roba1 e Roba2, ma non in via alfabetica, ma secondo una priorità che do io.
Tipo priorità= prima i CAZZO, poi i CULO e poi i FIGA
e poi
priorità dei colori= prima i VERDI, poi i ROSSI...ecc...
HOW?
Non ho voglia di fare codifiche numeriche del tipo CAZZO=1 ecc... non ho sbatta
Codice:
public class Riga
{
public string Testo { get; set; }
public string Roba1 { get; set; }
public string Roba2{ get; set; }
public Riga(string testo, string r1, string r2)
{
Testo = testo;
Roba1 = r1;
Roba2 = r2;
}
}
private void button1_Click(object sender, EventArgs e)
{
List<Riga> list = new List<Riga>();
list.Add(new Riga("asdfasfasfasdfkljadfkljasflkjasdfk322111111111lj", "CAZZO","ROSSO"));
list.Add(new Riga("afrewrwe343sdfkymyaculo5ljadfkljasflkjasd3fklj", "FACCIA","VERDE"));
list.Add(new Riga("asdfasfasfasdf342343242345kljadfkljasflkjas68", "CULO","ROSSO"));
Re: [c#] Lord Orion che ama il c sciarp
Io sto imparando C# da usare in Unity, quindi fottecazzi di sta roba
Re: [c#] Lord Orion che ama il c sciarp
pensavo si parlasse di musica
Re: [c#] Lord Orion che ama il c sciarp
Citazione:
Originariamente Scritto da
Sandro Storti
Io sto imparando C# da usare in Unity, quindi fottecazzi di sta roba
Difficile ?
Inviato dal mio iPhone utilizzando Tapatalk
Re: [c#] Lord Orion che ama il c sciarp
Citazione:
Originariamente Scritto da
Sandro Storti
Io sto imparando C# da usare in Unity, quindi fottecazzi di sta roba
Pg.x+=10;
Pg.y+=10;
if(Pg.x>1) Pg.x=0;
alsoAlwaysCazzoduro();
while(1){ vaiViah();}
Re: [c#] Lord Orion che ama il c sciarp
Beh, fatto, ho cambiato i riferimenti testuali in interi secondo uno switch e poi ho fatto orderby per tutti i riferimenti a seguire...
Re: [c#] Lord Orion che ama il c sciarp
La classe riga deve implementare icomparable (me pare si chiami così).
Adesso sono al gabinetto, dopo cena verifico il conto corrente, se trovo 100€ in più ti posto il codice bell'effatto.
Re: [c#] Lord Orion che ama il c sciarp
list.shuffle(Math.rand(1));
Re: [c#] Lord Orion che ama il c sciarp
Re: [c#] Lord Orion che ama il c sciarp
Re: [c#] Lord Orion che ama il c sciarp
public void SvapoLife(){
Svapo svapo= new Svapo();
try{
while(true) svapo.creaThread("Just 4 Spam"; creaTitoloRandom(); creaContenutoAmminchia());
}catch(exceptionBan e){
createNewAccount();
SvapoLife(); //fuck recursion
}
}
Re: [c#] Lord Orion che ama il c sciarp
Codice:
public class Riga : IComparable<Riga>
{
public string Testo { get; set; }
public string Roba1 { get; set; }
public string Roba2 { get; set; }
public Riga(string testo, string r1, string r2)
{
Testo = testo;
Roba1 = r1;
Roba2 = r2;
}
public int CompareTo(Riga other)
{
// return -1 if this instance precedes obj in the sort order.
// return 0 if this instance occurs in the same position in the sort order as obj.
// return 1 if this instance follows obj in the sort order.
if (this.Roba1.Equals(other.Roba1) && this.Roba2.Equals(other.Roba2)) return 0;
// metti qui le altre regole
// oppure:
Random random = new Random();
return random.Next(-1,1);
}
}
private void button1_Click(object sender, EventArgs e)
{
List<Riga> list = new List<Riga>();
list.Add(new Riga("asdfasfasfasdfkljadfkljasflkjasdfk322111111111lj", "CAZZO", "ROSSO"));
list.Add(new Riga("afrewrwe343sdfkymyaculo5ljadfkljasflkjasd3fklj", "FACCIA", "VERDE"));
list.Add(new Riga("asdfasfasfasdf342343242345kljadfkljasflkjas68", "CULO", "ROSSO"));
list.Sort();
}
Poi se Roba1 e Roba2 non sono stringhe arbitrarie ma possono assumere solo certi valori, potresti semplificarti un po' la vita con gli enum ad esempio.
Re: [c#] Lord Orion che ama il c sciarp
Nice, la proverò, grazie Leizar ♥
Re: [c#] Lord Orion che ama il c sciarp
L'enumeratore è la scelta migliore e potresti usarlo per dare ad ogni colore un valore da 0 a che ne so per l'accesso diretto ad un bellissimo array di interi nella classe COLORE che contiene le priorità di ogni colore.
Poi ci fai un bel metodo per cambiare le priorità e bon. Infine scegli l'algoritmo di ordinamento che preferisci e bon. Io userei un bel heap sort FATTO IN CASA.
Re: [c#] Lord Orion che ama il c sciarp
credevo si parlasse del "do diesis" :V
Re: [c#] Lord Orion che ama il c sciarp
Citazione:
Originariamente Scritto da
ND
Difficile ?
Inviato dal mio iPhone utilizzando Tapatalk
Unity o la programmazione?
Inviato dal mio SM-G935F utilizzando Tapatalk
Re: [c#] Lord Orion che ama il c sciarp
Citazione:
Originariamente Scritto da
Leizar
Codice:
public class Riga : IComparable<Riga>
{
public string Testo { get; set; }
public string Roba1 { get; set; }
public string Roba2 { get; set; }
public Riga(string testo, string r1, string r2)
{
Testo = testo;
Roba1 = r1;
Roba2 = r2;
}
public int CompareTo(Riga other)
{
// return -1 if this instance precedes obj in the sort order.
// return 0 if this instance occurs in the same position in the sort order as obj.
// return 1 if this instance follows obj in the sort order.
if (this.Roba1.Equals(other.Roba1) && this.Roba2.Equals(other.Roba2)) return 0;
// metti qui le altre regole
// oppure:
Random random = new Random();
return random.Next(-1,1);
}
}
private void button1_Click(object sender, EventArgs e)
{
List<Riga> list = new List<Riga>();
list.Add(new Riga("asdfasfasfasdfkljadfkljasflkjasdfk322111111111lj", "CAZZO", "ROSSO"));
list.Add(new Riga("afrewrwe343sdfkymyaculo5ljadfkljasflkjasd3fklj", "FACCIA", "VERDE"));
list.Add(new Riga("asdfasfasfasdf342343242345kljadfkljasflkjas68", "CULO", "ROSSO"));
list.Sort();
}
Poi se Roba1 e Roba2 non sono stringhe arbitrarie ma possono assumere solo certi valori, potresti semplificarti un po' la vita con gli enum ad esempio.
CompareTo confermo. In alternativa puoi usare OrderBy sugli IEnumerable passando come argomento una funzione che definisce una chiave di priorità secondo l'ordinamento che vuoi tu, che è meno anni ottanta.
Esempio:
ALLABRACE Priorità 0
CIVAS Priorità 1
CESARINO Priorità 2
FULVIO Priorità 3
A OrderBy passerai una lambda del tipo
Codice:
x =>
{
if (x == "ALLABRACE")
return 0;
else if (x == "CIVAS")
return 1;
else if (x == "CESARINO")
return 2;
else if (x == "FULVIO")
return 3;
else
throw new System.ArgumentException("8====D~~~~");
}
Prova sto codice, se non ho capito un cazzo di quello che vuoi fare scusa ma è tardi e ho lavorato una giornata:
Codice:
namespace OrderTest
{
class Item
{
public string Code { get; set; }
public string PriorityFirst { get; private set; }
public string PrioritySecond { get; private set; }
private static Dictionary<string,int> PriorityTable =
new Tuple<string, int>[]
{
new Tuple<string, int>("CACCA",1),
new Tuple<string,int>("PUPU", 2),
new Tuple<string,int>("PIPI", 3),
new Tuple<string,int>("ALLABRACE", 0),
new Tuple<string,int>("CIVAS", 1),
new Tuple<string,int>("CESARINO", 2),
new Tuple<string,int>("FULVIO", 3)
}.ToDictionary(x => x.Item1, x => x.Item2);
public Item(string code, string priority1, string priority2)
{
Code = code;
PriorityFirst = priority1;
PrioritySecond = priority2;
}
public int Priority
{
get
{
return PriorityTable[PriorityFirst] * 10 + PriorityTable[PrioritySecond];
}
}
public override string ToString()
{
return Code + "," + PriorityFirst + "," + PrioritySecond;
}
}
class Program
{
static void Main(string[] args)
{
Item[] testList = new Item[]
{
new Item("aabaadadaebege", "PIPI", "FULVIO"),
new Item("adadaw", "PUPU", "CESARINO"),
new Item("aababege", "CACCA", "ALLABRACE"),
new Item("axxcefqfq", "CACCA", "FULVIO"),
};
var orderedList = testList.OrderBy(x => x.Priority);
foreach (var x in orderedList)
Console.WriteLine(x);
}
}
}
Re: [c#] Lord Orion che ama il c sciarp
Citazione:
Originariamente Scritto da
Sandro Storti
Unity o la programmazione?
Inviato dal mio SM-G935F utilizzando Tapatalk
La programmazione su unity. Ho visto che ci sono motori già fatti tipo il corgi engine e mi domandavo rispetto ai blueprint di ue4 se fosse molto più complesso
Re: [c#] Lord Orion che ama il c sciarp
Rispetto ue4 non lo so
Inviato dal mio SM-G935F utilizzando Tapatalk
Re: [c#] Lord Orion che ama il c sciarp
In PHP era sicuramente più facile e più meglio