声明 IEnumerable<T> 变量以供稍后使用

Jon*_*Jon 3 .net c# linq c#-4.0

我有一个 LINQ 查询,例如:

using(csv.......)
{
    csv.Select(x => new Data() { ID = x[27], Raw = String.Join(",", x) });
}
//Do some stuff

//Now I want to use the result of the query
foreach(var item in ??)
{

}
Run Code Online (Sandbox Code Playgroud)

查询在我的using语句中返回 IEnumerable但我如何声明然后分配一个变量,以便稍后在foreach语句中使用它?

Abd*_*nim 5

你应该好好利用IEnumerable. 这样做的好处是您的查询在您需要之前不会被评估。一旦你做了ToList()你的查询就完全执行了。建议IEnumerable尽可能多地使用。

您可以IEnumerable<Data>像这样在外部范围内定义

IEnumerable<Data> myDataList;
using(myObject.......)
{
    myDataList =csv.Select(x => new Data() { ID = x[27], Raw = String.Join(",", x) });
}
// do your stuffs
// and just use the IEnumerable<Data> in your foreach loop
foreach(var item in myDataList)
{
    // here item is typeof(Data)
}
Run Code Online (Sandbox Code Playgroud)