Füllen Sie die Liste mit LINQ
Habe ich eine ArrayList vom Typ RawResults
wo RawResults
ist ein Ort und ein Datum
public class RawResult
{
public string location { get; set; }
public DateTime createDate {get; set; }
public RawResults(string l, DateTime d)
{
this.location = l;
this.createDate = d;
}
}
Ich möchte LINQ to füllen Sie eine Liste mit unterschiedlichen Positionen und die Anzahl der Male es wird in meine arraylist. Wenn ich in der Lage, es zu tun in SQL würde das so Aussehen, das
select
bw.location,
count(*) as Count
from
bandwidth bw,
media_log ml
where
bw.IP_SUBNET = ml.SUBNET
group by bw.location
order by location asc
später werde ich auch haben, das gleiche zu tun, aber in einem bestimmten Datumsbereich.
UPDATE
dies ist die Abfrage, die ausgeführt wurde, um alle Daten in rawData
SELECT
MEDIASTREAM.BANDWIDTH.LOCATION, MEDIASTREAM.MEDIA_LOG.CREATE_DATE
FROM
MEDIASTREAM.BANDWIDTH INNER JOIN
MEDIASTREAM.MEDIA_LOG ON MEDIASTREAM.BANDWIDTH.IP_SUBNET =
MEDIASTREAM.MEDIA_LOG.SUBNET
Nun brauche ich eine Abfrage der Daten, die zurückgegeben wurde, in rawData
zu bekommen verschiedene Ergebnis-sets. Ich habe eine Liste mit Abfragen.
- Bevor Sie alles: verwenden Sie einen
List<RawResult>
. - danke, habe ich geändert, geben Sie back ein, um
List<RawResult>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies tun:
Obwohl die
ToList
ist nicht notwendig, es sei denn, Sie absolut müssen es eineList<T>
. Filtern nach Zeit, können Sie nur so etwas tun:Wenn
media_log
ist das nicht relevant ist, können Sie Sie einfach weglassenjoin
:Oder in fluent syntax:
Nach Datum filtern, verwenden Sie einfach diese:
Oder in fluent syntax:
Beachten, um eine
ArrayList
oder andere nicht-generische collection-Typ in eine Linq-Abfrage verwenden Sie dieCast<T>
oderOfType<T>
Methoden, wie diese:ArrayList<RawResults> rawData
ausführen von LINQ auf.media_log
, also habe ich angenommen, das war wichtig. Wenn Sie nicht relevant sind, können Sie nur lassen Sie es aus der Abfrage. Siehe meine aktualisierte Antwort.ArrayList
's in meiner Antwort.