Ich versuche, einen Wert mit einer linq.js Ausdruck zuweisen. Die Linq lamba expresion würde so aussehen:Linq zu linq.js Übersetzung mit Wert Zuweisung
List<SearchSpaceRoom> roomsAvailable = Spaces.Select(s =>
{
s.Available = s.Rooms.Where(r => r.RoomTypeRanges.Any(t => t.Type.ToString() == "Theatre" && t.Min <= 101 && t.Max >= 200)).Count();
return s;
})
.ToList();
Aber ich kann den Weg nicht finden dies mit linq.js. zur Arbeit zu tun Die Idee ist, so etwas zu haben:
var data = eval($('#SpaceJson').val());
var results = $.Enumerable.From(data).ToArray();
var layout = 'Theatre';
var minDelegates = '101';
var maxDelegates = '200';
results = $.Enumerable.From(results)
.Select('{$.Available = $.Rooms.Where($.RoomTypeRanges.Any($.Type == \'' + layout + '\' && $.Min <= \'' + parseInt(minDelegates) + '\' && t.Max >= \'' + parseInt(maxDelegates) + '\')).Count(); return $; }').ToArray();
Ist das möglich ist, kann jemand empfehlen, mir den besten Ansatz, dies zu tun?
Wenn Sie weitere Informationen über den Ausdruck benötigen: ist es die Anzahl der Räume, die die Anforderungen von Min und Max Menschen für ein bestimmtes Layout (Klassenzimmer, Theater) für jeden Raum entspricht. Die Grundstruktur ist wie:
- Ein Raum enthält Zimmer
- Ein Raum enthält die verschiedenen Layouts
- Ein Layout der max enthält ein min Menschen
Ich kann alle die Datenstruktur zur Verfügung stellen Wenn du es brauchst, aber ich glaube, das wird mehr verwirren als Hilfe.
Danke!
EDIT: ich die Klassen hinzufügen hier
public class SearchSpaceViewModel
{
public List<SearchSpaceRoom> Spaces { get; set; }
public string RoomsJson { get; set; }
}
public class SearchSpaceRoom
{
public List<RoomItem> Rooms { get; set; }
public int Available { get; set; }
.
.
.
}
public class RoomItem
{
public List<RoomTypeRange> RoomTypeRanges { get; set; }
.
.
.
}
public class RoomTypeRange
{
public string Type { get; set; }
public int Max { get; set; }
public int Min { get; set; }
}