Ich habe folgende Klasse:
class Detail
{
public Detail()
{
_details = new List<string>();
}
public IList<string> Details { get { return _details; } }
private readonly List<string> _details;
}
Derzeit sortiere ich die Klasse nach dem Zufallsprinzip wie folgt:
void ShuffleGenericList<T>(IList<T> list)
{
//generate a Random instance
var rnd = new Random();
//get the count of items in the list
var i = list.Count();
//do we have a reference type or a value type
T val = default(T);
//we will loop through the list backwards
while (i >= 1)
{
//decrement our counter
i--;
//grab the next random item from the list
var nextIndex = rnd.Next(i, list.Count());
val = list[nextIndex];
//start swapping values
list[nextIndex] = list[i];
list[i] = val;
}
}
Was ich tun möchte, ist, den Inhalt von Details in alphabetischer Reihenfolge zu sortieren.
Zum Beispiel, wenn der Inhalt so aussieht:
[0] a
[1] d
[2] b
Ich möchte in der Lage sein, diese Methode auszuführen und sie sortieren zu lassen:
[0] a
[1] b
[2] d
Kennt jemand einen einfachen Weg, dies zu tun? Beachten Sie, dass die Listen normalerweise weniger als zehn Einträge enthalten. Kann ich das mit LINQ machen? Entschuldigung, aber ich bin nicht sehr vertraut mit LINQ. Ich habe gerade einen Vorschlag gehört, dass ich das verwenden könnte.
_details.Sort()
stattdessen - wie_details
alsList<string>
eher als deklariertIList<string>
.Sort
wird nur deklariertList<T>
, nichtIList<T>
.Es gibt zwei Möglichkeiten:
Ohne LINQ:
yourList.Sort();
Mit LINQ:
yourList.OrderBy(x => x).ToList()
Weitere Informationen finden Sie unter: http://www.dotnetperls.com/sort-string-array
quelle
Sort()
ist Mitglied vonList<T>
nichtIList<T>
. Sie könnten in Betracht ziehen, zu ersteren zu wechseln (es sei denn, Sie erwarten, mit verschiedenenIList<T>
Implementierungen zu arbeiten.)Ein anderer Weg
quelle
Sie sollten in der Lage sein,
OrderBy
in LINQ zu verwenden ...var sortedItems = myList.OrderBy(s => s);
quelle
IEnumerable<T>
und ist nicht an Ort und Stelle sortiertWas ist los mit
List<T>.Sort()
?http://msdn.microsoft.com/en-us/library/3da4abas.aspx
quelle
_details
aus Ihrem Beispiel sortieren, aber nichtDetails