J'ai une collection d'éléments où chaque élément a un champ "date" (le code est ci-dessous). J'essaie de combler les lacunes dans les dates dans la collection en utilisant LINQ. en particulier, je veux que la séquence résultante contienne tous les jours entre le premier et le dernier jour de la séquence originale. En plus de cela, ma requête LINQ résultante devrait être capable de gérer toutes les modifications de la séquence d'origine. c'est-à-dire que je ne peux pas calculer les dates minimales et maximales à l'avance.comment gérer les modifications de données source dans LINQ?
donc j'ai essayé le code ci-dessous mais il échoue quand il essaie de calculer Min et Max de la séquence. Je suis à la recherche d'une alternative "paresseux".
Merci pour toute aide konstantin
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
namespace consapp
{
class C
{
public DateTime date;
public int? value;
}
static class Program
{
static IEnumerable<C> dates(DateTime d0, DateTime d1)
{
for (var d = d0; d <= d1; d = d.AddDays(1))
{
yield return new C { date = d };
}
}
static void Main(string[] args)
{
var xs = new ObservableCollection<C>();
var q = from d in dates(xs.Min(y => y.date), xs.Max(y => y.date))
join x in xs on d.date equals x.date into js
from j in js.DefaultIfEmpty()
orderby d.date
select new { date = d.date, value = j != null ? j.value : null };
xs.Add(new C { date = DateTime.Parse("11/10/11") });
xs.Add(new C { date = DateTime.Parse("02/02/11") });
xs.Add(new C { date = DateTime.Parse("11/24/11") });
xs.Add(new C { date = DateTime.Parse("09/09/11") });
xs.Add(new C { date = DateTime.Parse("11/10/11") });
foreach (var x in q)
{
Console.WriteLine(x.date.ToShortDateString());
}
}
}
}
Bonjour konstantin, puisque Stackoverflow est une liste QnA éditée par la communauté, vous devriez éditer le titre de vos questions. Ou quel genre de réponse attendez-vous à la question «besoin d'aide avec linq»? Cordialement – Zeemee
@Mulmoth: merci, nous espérons que la nouvelle ligne d'objet est plus spécifique – akonsu