C# wie findet man einen Wert in einer Liste, Sammlung
Habe ich eine Liste diese Liste enthält eine Sammlung der folgenden Klasse
public class MyFile
{
public string FileName
{
get;
set;
}
public int Position
{
get;
set;
}
}
So ofc die definition Liste wird wie folgt Aussehen:
private List<MyFile> MyFiles = new List<MyFile>();
Kann ich auch auf die Suche nach der Sammlung mit:
MyFile tmpFile = MyFiles.Find(delegate(MyFile item)
{ return item.FileName == fileName; });
So weit gut Aussehen, außer das, was ich tun möchte, ist zurück, die MyFile, dass nicht nur der dem Dateinamen entspricht, der aber auch den höchsten Wert in Feld pos.
Also, wenn Sie die folgenden Elemente existieren in der Liste:
myDocument.doc|1
myDocument.doc|2
myDocument.doc|3
myPDF.pdf|1
myPDF.pdf|2
myPDF.pdf|3
ist und der Wert von fileName = "myDocument.doc" in meiner Methode finden, dann bin ich immer noch fehlenden Logik zurück myDocument.doc|3 dieser Artikel, weil diese den höchsten Wert der pos.
In meine SQL Abfrage wäre
select top 1 * from MyFiles
where fileName = 'myDocument.doc'
order by position desc;
Vielen Dank im Voraus.
- Sind Sie mit .NET 3.5 oder eine frühere version?
- mit 3.5, so dass keine Probleme gibt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie mit Linq? Wenn dem so ist, eine einfache Abfrage, soll dies gerne tun:
FirstOrDefault
besserDies ist einfach mit LINQ oder die Erweiterung Methoden wenn Sie mit den oben .Net 2.0:
versuchen Sie dies: