Comment append des éléments à la liste

J’ai du modèle dans mon projet. Voici le code du modèle

public partial class Logging { public ssortingng Imei { get; set; } public DateTime CurDateTime { get; set; } public Nullable GPSDateTime2 { get; set; } public Nullable Latitude2 { get; set; } public Nullable Longitude2 { get; set; } public ssortingng Speed { get; set; } public Nullable Datatype { get; set; } public int Id { get; set; } [NotMapped] public TimeSpan? FirstStartDifference { get { if (CurDateTime != null) { var midnight = new DateTime(CurDateTime.Year, CurDateTime.Month, CurDateTime.Day, 00, 00, 00); var difference = CurDateTime - midnight; return difference; } return null; } } [NotMapped] public TimeSpan? LastStartDifference { get { if (CurDateTime != null) { var midnight = new DateTime(CurDateTime.Year, CurDateTime.Month, CurDateTime.Day, 23, 59, 00); var difference = midnight - CurDateTime; return difference; } return null; } } [NotMapped] public int coeff = 2; } 

J’ai besoin d’obtenir des éléments de la firebase database, c’est la première entrée, où Datatype==1 et Last où Datatype ==2 .

Donc j’écris cette méthode sur le back-end

 public JsonResult GetStops() { using (var ctx = new GoogleMapTutorialEntities()) { var firstitem = ctx.Loggings.Where(x => x.Datatype == 2).AsEnumerable().Select( x => new { lng = x.Longitude2, lat = x.Latitude2, difference = (int)(x.FirstStartDifference?.TotalMinutes ?? -1) * x.coeff }).FirstOrDefault(); var lastItem = ctx.Loggings.Where(x => x.Datatype == 2).AsEnumerable().Select( x => new { lng = x.Longitude2, lat = x.Latitude2, difference = (int)(x.LastStartDifference?.TotalMinutes ?? -1) * x.coeff }).LastOrDefault(); List items = new List {firstitem, lastItem}; return Json(firstitem, JsonRequestBehavior.AllowGet); } } 

Après cela, je dois append firstitem et lastitem à la liste.

Je l’écris comme ceci List items = new List {firstitem, lastItem};

Mais je reçois une erreur

Code de gravité Description État de suppression de ligne de fichier de projet Erreur CS1950 La meilleure méthode surchargée Ajouter la méthode ‘List.Add (Logging)’ pour l’initialiseur de collection contient des arguments non valides. Argument 1: impossible de convertir de ” en ‘Heatmap.Models.Logging’ Heatmap C: \ Utilisateurs \ nemes \ source \ repos \ Heat \ Heatmap \ Controllers \ HomeController. cs 37 actif

pour cette List items = new List {firstitem, lastItem};

Comment puis-je les append à la liste?

Vous retournez un type anonyme au lieu de la Logging . Les firstitem et lastItem sont des types anonymes . Changez votre code pour ceci:

 x => new Logging { Longitude2 = x.Longitude2, Latitude2 = x.Latitude2, //And other properties } 

Et si vous obtenez toujours une erreur, c’est probablement parce que vous ne pouvez pas projeter sur une entité mappée, vous devez créer une classe DTO avec les propriétés nécessaires à partir de l’entité de Logging :

 public class LoggingDTO { public ssortingng Longitude2 { get; set; } public ssortingng Latitude2 { get; set; } //And other properties } 

Ensuite:

 x => new LoggingDTO