2010-03-23 92 views
1

我有一個LINQ查詢,返回一些像這樣的對象...LINQtoSQL:查詢返回列表<String>

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

然後我做這個

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

有沒有辦法結合成的東西列出這個?

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

回答

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

或查詢語法,如果你喜歡

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

這就是我正在尋找Select方法(...)沒有意識到我可以做到這一點。 – ctrlShiftBryan 2010-03-23 18:47:35

3

這個查詢應該一舉兩得。

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

*注意,我比其他版本更喜歡這種LINQ語法。

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

另外,如果您還沒有我強烈推薦下載和使用LinqPad。這是一個殺手級的小應用程序,可以讓你試驗LINQ查詢(還有更多!)

+0

該語法不正確。 – ctrlShiftBryan 2010-03-23 18:48:28