如何將查詢結果選擇到多個列表中?例如,Linq:將數據選擇到多個列表
class Person
{
public string FirstName {get;set;}
public string LastName {get;set;}
}
void test()
{
var query =
from i in Persons
select i;
// now i want to select two lists - list of first names, and list of last names
// approach 1 - run query twice?
List<string> f = query.Select(i=>i.FirstName).ToList();
List<string> l = query.Select(i=>i.LastName).ToList();
// approach 2 - turn it into a list first, and break it up
List<Person> p = query.ToList();
List<string> f = p.Select(i=>i.FirstName).ToList();
List<string> l = p.Select(i=>i.LastName).ToList();
}
問題與方法1是我需要運行查詢兩次。 方法2的問題是我使用了兩倍的內存。數據集龐大時,可能會成爲問題。
如果數據集很大,任何查詢都會成爲問題。數據集是否會變得「巨大」? –
你打算如何使用這些列表?也許沒有必要製作2個單獨的列表。 – spender
是的,這是必要的。結果將作爲兩個列表提供給另一個API。 –