Vorrei sapere come posso ordinare gli elementi di una stringa [] in base a una posizione di stringa specifica. Per esempio voglio ordinare il seguente array dalla stringa "-"Ordinamento di un array di stringhe in base a una posizione di stringa (C#)
Ingresso: {xx - c, xxxxx - b, yyy - un, mlllll - d}
uscita prevista: {yyy - un, xxxxx - B, xx - c, mlllll - d}
quello che ho finora è la seguente:
public string[] SortByStringPos(string[] arr, string str, bool ascending)
{
if (ascending)
{
var result = from s in arr
where s.Length >= s.IndexOf(str)
orderby s[s.IndexOf(str)] ascending
select s;
return result.ToArray();
}
else
{
var result = from s in arr
where s.Length >= s.IndexOf(str)
orderby s[s.IndexOf(str)] descending
select s;
return result.ToArray();
}
}
qualcuno mi può cadere un suggerimento ...?
Sembra che si desidera ordinare con la lettera che viene dopo '-', non dalla posizione di' -' che è la stessa in tutte le corde? – Esailija
Quindi, quello che vuoi è la matrice di stringhe da ordinare, basata solo sull'ultima parte delle stringhe in essa contenute? Quindi ignorando i primi 4 caratteri, ad esempio? (O nel tuo caso, solo la parte dietro il "-"? " –
OK scusate, non lo stavo specificando abbastanza chiaro.Voglio ordinare tutti gli elementi all'interno della stringa [] dove mai una determinata stringa X si verifica la prima volta Se X non esiste in un articolo Y, basta mettere Y alla fine della nuova stringa []. Spero che ora sia più chiaro ...? – oren