用LINQ表达式替换foreach循环

用LINQ表达式替换foreach循环,linq,lambda,Linq,Lambda,更换foreach循环 IList<EmployeeSearch> empItems = new List<EmployeeSearch>(); EmployeeSearch empItem = new EmployeeSearch(); foreach (var _emp in mediaResults.results) { empItem.Title = _emp.title; empItem.Desc = _emp.description;

更换
foreach
循环

IList<EmployeeSearch> empItems = new List<EmployeeSearch>();
EmployeeSearch empItem = new EmployeeSearch();

foreach (var _emp in mediaResults.results)
{
    empItem.Title = _emp.title;
    empItem.Desc = _emp.description;
    empItems.Add(empItem);
}
错误:

错误2无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Collections.Generic.IList”。存在一个显式转换(您是吗


您需要将其转换为列表:

(from _emp in employeeResults.results
                             select new EmployeeSearch
                                 {
                                     Title = _emp.title,
                                     Desc = _emp.description                                          
                                 }).ToList();
或者…更改empItems定义以使用
var
隐式键入:

var empItems = from _emp in employeeResults.results
                             select new EmployeeSearch
                                 {
                                     Title = _emp.title,
                                     Desc = _emp.description                                          
                                 };

empItems
将是
EmployeeSearch
对象的
IEnumerable

您需要将其转换为列表:

(from _emp in employeeResults.results
                             select new EmployeeSearch
                                 {
                                     Title = _emp.title,
                                     Desc = _emp.description                                          
                                 }).ToList();
或者…更改empItems定义以使用
var
隐式键入:

var empItems = from _emp in employeeResults.results
                             select new EmployeeSearch
                                 {
                                     Title = _emp.title,
                                     Desc = _emp.description                                          
                                 };

empItems
将是
EmployeeSearch
对象的
IEnumerable

您需要将其转换为列表:

(from _emp in employeeResults.results
                             select new EmployeeSearch
                                 {
                                     Title = _emp.title,
                                     Desc = _emp.description                                          
                                 }).ToList();
或者…更改empItems定义以使用
var
隐式键入:

var empItems = from _emp in employeeResults.results
                             select new EmployeeSearch
                                 {
                                     Title = _emp.title,
                                     Desc = _emp.description                                          
                                 };

empItems
将是
EmployeeSearch
对象的
IEnumerable

您需要将其转换为列表:

(from _emp in employeeResults.results
                             select new EmployeeSearch
                                 {
                                     Title = _emp.title,
                                     Desc = _emp.description                                          
                                 }).ToList();
或者…更改empItems定义以使用
var
隐式键入:

var empItems = from _emp in employeeResults.results
                             select new EmployeeSearch
                                 {
                                     Title = _emp.title,
                                     Desc = _emp.description                                          
                                 };
empItems
将是
EmployeeSearch
对象的
IEnumerable

在查询结束时添加对扩展方法的调用:

empItems = 
    (from _emp in employeeResults.results
     select new EmployeeSearch
     {
         Title = _emp.title,
         Desc = _emp.description                                          
     })
    .ToList();
或者,如果您可以重构代码,改用
IEnumerable
,这可能会更好:

IEnumerable<EmployeeSearch> empItems =
    from _emp in employeeResults.results
    select new EmployeeSearch
    {
        Title = _emp.title,
        Desc = _emp.description                                          
    };
IEnumerable项目=
来自员工结果中的emp
选择新员工搜索
{
Title=_emp.Title,
描述=_emp.description
};
如果您只是在结果中循环,并且实际上不需要从结果集中添加/删除元素,也不需要对结果进行按索引访问,则通常应使用此方法。将查询结果转换为列表需要在内存中分配单个连续数组,这是一个相当昂贵的操作。

或者添加一个在查询结束时调用扩展方法:

empItems = 
    (from _emp in employeeResults.results
     select new EmployeeSearch
     {
         Title = _emp.title,
         Desc = _emp.description                                          
     })
    .ToList();
或者,如果您可以重构代码,改用
IEnumerable
,这可能会更好:

IEnumerable<EmployeeSearch> empItems =
    from _emp in employeeResults.results
    select new EmployeeSearch
    {
        Title = _emp.title,
        Desc = _emp.description                                          
    };
IEnumerable项目=
来自员工结果中的emp
选择新员工搜索
{
Title=_emp.Title,
描述=_emp.description
};
如果您只是在结果中循环,并且实际上不需要从结果集中添加/删除元素,也不需要对结果进行按索引访问,则通常应使用此方法。将查询结果转换为列表需要在内存中分配单个连续数组,这是一个相当昂贵的操作。

或者添加一个在查询结束时调用扩展方法:

empItems = 
    (from _emp in employeeResults.results
     select new EmployeeSearch
     {
         Title = _emp.title,
         Desc = _emp.description                                          
     })
    .ToList();
或者,如果您可以重构代码,改用
IEnumerable
,这可能会更好:

IEnumerable<EmployeeSearch> empItems =
    from _emp in employeeResults.results
    select new EmployeeSearch
    {
        Title = _emp.title,
        Desc = _emp.description                                          
    };
IEnumerable项目=
来自员工结果中的emp
选择新员工搜索
{
Title=_emp.Title,
描述=_emp.description
};
如果您只是在结果中循环,并且实际上不需要从结果集中添加/删除元素,也不需要对结果进行按索引访问,则通常应使用此方法。将查询结果转换为列表需要在内存中分配单个连续数组,这是一个相当昂贵的操作。

或者添加一个在查询结束时调用扩展方法:

empItems = 
    (from _emp in employeeResults.results
     select new EmployeeSearch
     {
         Title = _emp.title,
         Desc = _emp.description                                          
     })
    .ToList();
或者,如果您可以重构代码,改用
IEnumerable
,这可能会更好:

IEnumerable<EmployeeSearch> empItems =
    from _emp in employeeResults.results
    select new EmployeeSearch
    {
        Title = _emp.title,
        Desc = _emp.description                                          
    };
IEnumerable项目=
来自员工结果中的emp
选择新员工搜索
{
Title=_emp.Title,
描述=_emp.description
};

如果您只是在结果中循环,并且实际上不需要从结果集中添加/删除元素,也不需要对结果进行按索引访问,则通常应使用此方法。将查询结果转换为列表需要在内存中分配单个连续数组,这是一个相当昂贵的操作。

我尝试过
 ToList()
我仍然收到相同的错误,我在选择时收到红色的斜线。在调用
ToList()
之前,您将整个
从…选择…
包围在括号中?我尝试过
ToList()
我仍然收到相同的错误,我在select上看到红色的斜线在调用
ToList()
之前,您将整个
从…select…
包围在parens中?我确实尝试过
ToList()
我仍然收到相同的错误,我在select上看到红色的斜线在调用
ToList()
之前,您将整个
从…select…
包围在parens中?我确实尝试过
ToList()
我仍然会遇到同样的错误,我在select上会看到红色的斜线。在调用
ToList()之前,您将整个
从…select…
包围在parens中?