Pourquoi l'erreur suivante apparaît-elle dans le code suivant?Comment extraire un objet personnalisé d'une liste générique avec LINQ?
Je pensais que si je mets des objets personnalisés dans une liste générique de son type alors IEnumerable serait pris en charge? Quoi d'autre dois-je faire à cette liste pour utiliser LINQ dessus?
Impossible de convertir implicitement le type 'System.Collections.Generic.IEnumerable
<TestLinq23.Customer>
' à 'TestLinq23.Customer'
using System;
using System.Collections.Generic;
using System.Linq;
namespace TestLinq23
{
class Program
{
static void Main(string[] args)
{
List<Customer> customerSet = new List<Customer>();
customerSet.Add(new Customer { ID = 1, FirstName = "Jim", LastName = "Smith" });
customerSet.Add(new Customer { ID = 2, FirstName = "Joe", LastName = "Douglas" });
customerSet.Add(new Customer { ID = 3, FirstName = "Jane", LastName = "Anders" });
Customer customerWithIndex = customerSet[1];
Console.WriteLine("Customer last name gotten with index: {0}", customerWithIndex.LastName);
Customer customerWithLinq = from c in customerSet
where c.FirstName == "Joe"
select c;
Console.WriteLine(customerWithLinq.LastName);
Console.ReadLine();
}
}
public class Customer
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
Peut également nécessiter les variantes * OrDefault() si la validité d'un enregistrement n'existe pas. –
Oui, je vais ajouter cela à la réponse. –
Avait également oublié la surcharge en prenant un prédicat - encore plus simple :) –