Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

LINQ ("Language Integrated Query")

LINQ ist eine Abfragesprache von Microsoft für VisualBasic (und C#). Die Ausdrücke ermöglichen es Ihnen unter anderem Listen zu sortieren, zu durchsuchen und zu filtern.

Die können LINQ auf zwei Arten schreiben:

  • Abfrage-Syntax (Query)

  • Methoden-Syntax (Method)

Beide Schreibweisen sind gleichwertig. 

Codeblocklanguagevbtitle

LINQ Ausdruck (VB) - Query Syntax
Codeblock
breakoutModefull-width
languagevb
' Liefert die Namen aller Dateien der Auflistung "aFileInfoArray", die größer als 10000 Byte ist und auf ".txt" enden.
FROM fileInfo IN aFileInfoArray WHERE fileInfo.FileSize>10000 AND fileInfo.Extension.ToUpper()=".TXT" SELECT fileInfo.FullName
Codeblocklanguagevbtitle


LINQ Ausdruck (VB) - Method Syntax
Codeblock
breakoutModefull-width
languagevb
' Liefert die Namen aller Dateien der Auflistung "aFileInfoArray", die größer als 10000 Byte ist und auf ".txt" enden.
aFileInfoArray.Where(Function(fileInfo) fileInfo.FileSize>10000 and fileInfo.Extension.ToUpper()=".TXT" ).Select(Function(fileInfo) fileInfo.FullName)

Weitere Hilfestellungen und Informationen zu LINQ finden Sie u.a. hier:



Beispiel

Es sollen nur Dateien, die größer als 10000 Bytes sind ermittelt werden.

Gehen Sie wie folgt vor:

  • Ermitteln Sie mir der Aktivität "Dateien ermitteln" alle Dateien eines Verzeichnisses. Das Ergebnis erhalten Sie in der Variable "aFileInfo" vom Typ "List of FileInfo"

  • Mit einer Assign-Aktivität können Sie nun eine LINQ-Abfrage anwenden und diese Liste filtern:

    • Der Ausdruck "(FROM fileInfo IN aFileInfoArray WHERE fileInfo.FileSize > 10000 SELECT fileInfo.FileName).ToList()" selektiert alle Dateinamen der gesuchten Dateien

    • Mit "ToList" am Ende geben Sie an, dass sie die gefundenen Einträge in eine Liste schreiben möchten (hier in die Liste "bigFiles")

Infotitle


Nur das erste gefundene Element ermitteln

Beispiel: Dateien mit LINQ filtern
Info
title

Um das erste gefundene Element zu protokollieren gibt man z.B.

  • (FROM fileInfo IN aFileInfoArray WHERE fileInfo.FileSize > 10000 SELECT fileInfo.FileName).toArray(0), oder

  • (FROM fileInfo IN aFileInfoArray WHERE fileInfo.FileSize > 10000 SELECT fileInfo.FileName).).FirstOrDefault()

Panel

Image ModifiedImage RemovedImage Added