Linq选择了很多新的专栏

时间:2015-04-08 15:38:07

标签: c# linq

我正在尝试将jquery自动完成,我使用标签和值like in this post,这意味着我需要以

形式的json
{ label: 'label text', value: 'value text' }

但是我正在过滤Employees列表,这是一个具有以下结构的类:

public sealed class Employee
{
    public string Name { get; set; }
    public string PersonnelNumber { get; set; }
    public int RecID { get; set; }
    public string Email { get; set; }
}

所以我尝试了以下Linq来获取标签的格式,我需要的值:

var jsonResult = employees
                  .SelectMany(emp => new { label = emp.Name, value = emp.RecID })
                  .ToList();

员工是Employee个对象的列表,但是它会抛出构建错误

  

错误1无法从用法推断出方法'System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable,System.Func>)'的类型参数。尝试显式指定类型参数。

如何解决此问题,以便在NameRecID作为输出的新对象列表中获取labelvalue

2 个答案:

答案 0 :(得分:5)

我想你只想在这里使用Select

var jsonResult = employees
    .Select(emp => new { label = emp.Name, value = emp.RecID })
    .ToList();

答案 1 :(得分:5)

SelectMany用于“展平”一组收藏品。由于您只有一个集合,因此只需使用Select

var jsonResult = employees.Select(emp => new { label = emp.Name, value = emp.RecID })
                          .ToList();