クエリの結果を複数のリストに選択するにはどうすればよいですか? 例えば、
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 の問題は、2 倍のメモリを使用することです。データセットが巨大な場合、問題になる可能性があります。