2010-03-23 3 views
1

J'ai une requête LINQ qui retourne un objet comme celui-ci ...LinqToSql: requête pour retourner Liste <String>

var query = from c in db.Customers 
      where ... 
      select c; 

Puis-je faire cela

List<String> list = new List<String>(); 
    foreach (ProgramLanguage c in query) 
    { 
     //GetUL returns a String 
     list.Add(GetUL(c.Property,c.Property2)); 
    } 

Est-il possible de combiner en quelque chose liste ceci?

var query = from c in db.Customers 
     where ... 
     select new 
     { 
      GetUL(c.Property,c.Property2) 
     }).ToList<String>(); 

Répondre

2
var query = db.Customers.Where(c => ...) 
    .Select(c => GetUL(c.Property, c.Property2)) 
    .ToList(); 

ou dans la syntaxe de requête si vous préférez

var query = (from c in db.Customers 
      where ... 
      select GetUL(c.Property, c.Property2)).ToList(); 
+0

c'est ce que je cherchais la méthode Select (...) Je ne savais pas que je pouvais le faire. – ctrlShiftBryan

3

Cette requête doit effectuer les deux étapes d'un seul coup.

var list = db.Customers.Where(c => ...). 
        Select(c => GetUL(c.Property,c.Property2)).ToList() 

* Notez que je préfère cette syntaxe LINQ à l'autre version.

0
var slist = (from c in db.Customers 
    where ... 
    select new 
    { 
     GetUL(c.Property,c.Property2) 
    }).ToList(); 

Aussi, si vous avez pas déjà, je recommande fortement le téléchargement et l'utilisation LinqPad. C'est une petite application tueur qui vous permet d'expérimenter avec des requêtes linq (et tellement plus!)

+0

cette syntaxe n'est pas correcte. – ctrlShiftBryan

Questions connexes