Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何转换IEnumerable<;匿名类型>;到列表<;T>;?_C#_Linq_List_Ienumerable_Anonymous Types - Fatal编程技术网

C# 如何转换IEnumerable<;匿名类型>;到列表<;T>;?

C# 如何转换IEnumerable<;匿名类型>;到列表<;T>;?,c#,linq,list,ienumerable,anonymous-types,C#,Linq,List,Ienumerable,Anonymous Types,我已经过滤了一个列表,使用Linq连接该列表中的两个字段并返回结果,现在需要将该列表返回给调用方法 Linq筛选的结果类型为IEnumerable,因此我无法返回该类型,因为我的方法返回类型为List 我最初尝试的是使用ToList方法转换IEnumerable,但这会引发编译器错误: IEnumerable does not contain a definition for ToList() 问题: 如何将IEnumerable转换或强制转换为列表 代码: 这是对列表执行的赋值,用于连接两个

我已经过滤了一个
列表
,使用Linq连接该列表中的两个字段并返回结果,现在需要将该列表返回给调用方法

Linq筛选的结果类型为
IEnumerable
,因此我无法返回该类型,因为我的方法返回类型为
List

我最初尝试的是使用ToList方法转换IEnumerable,但这会引发编译器错误:

IEnumerable does not contain a definition for ToList()
问题:

如何将IEnumerable转换或强制转换为列表

代码:

这是对列表执行的赋值,用于连接两个字段并将其作为列表返回:

                var filteredAppList = applicationList.Select(c => new { c.RID, RID_APP_FIELD = c.RID + " " + c.BusinessFriendlyName });
下面是我如何尝试将IEnumerable作为列表返回:

                return filteredAppList.ToList<Application>();
返回filteredaplist.ToList();

问题是,前面的查询返回一系列匿名对象,我们正在尝试将它们转换为
应用程序
类型。导致问题的原因,请尝试此

filteredAppList.Select(x=> new Application() 
                          {
                              // set properties.

                          })
               .ToList();

问题是,前面的查询返回一系列匿名对象,我们正在尝试将它们转换为
Application
类型。导致问题的原因,请尝试此

filteredAppList.Select(x=> new Application() 
                          {
                              // set properties.

                          })
               .ToList();

如果您知道需要返回
应用程序
对象,只需避免匿名类型:

var filteredAppList = applicationList.Select(c => new Application { RID = c.RID, RID_APP_FIELD = c.RID + " " + c.BusinessFriendlyName });

return filteredAppList.ToList();
我假设您的匿名类型与
应用程序的
类型完全相同,但情况可能并非如此。您仍然可以在中间步骤中使用匿名类型,但运行时很难将您的匿名类型自动转换为
应用程序
,因此投影回所需类型的实例几乎是您唯一的选择

var filteredAppList = applicationList.Select(c => new { RID = c.RID, RID_APP_FIELD = c.RID + " " + c.BusinessFriendlyName });

return filteredAppList.Select(anon => new Application { RID = anon.RID, OtherApplicationProperty = anon.RID_APP_FIELD }).ToList();

如果您知道需要返回
应用程序
对象,只需避免匿名类型:

var filteredAppList = applicationList.Select(c => new Application { RID = c.RID, RID_APP_FIELD = c.RID + " " + c.BusinessFriendlyName });

return filteredAppList.ToList();
我假设您的匿名类型与
应用程序的
类型完全相同,但情况可能并非如此。您仍然可以在中间步骤中使用匿名类型,但运行时很难将您的匿名类型自动转换为
应用程序
,因此投影回所需类型的实例几乎是您唯一的选择

var filteredAppList = applicationList.Select(c => new { RID = c.RID, RID_APP_FIELD = c.RID + " " + c.BusinessFriendlyName });

return filteredAppList.Select(anon => new Application { RID = anon.RID, OtherApplicationProperty = anon.RID_APP_FIELD }).ToList();

为什么要尝试转换回应用程序类?没有对象是
Application
对象。它们是匿名类型的实例。做你想做的事情基本上包括做
。选择(x=>newapplication{RID=x.RID,…})
等等-手动或自动;如果您想要
应用程序
实例,为什么要切换到匿名类型?
RID\u APP\u字段
应用程序
中的属性吗?如果不是,则必须将其设为一个或以这种方式重写
到字符串
返回RID+“”+BusinessFriendlyName
。然后,您不需要创建新实例,但可以返回
applicationList。其中(条件)。ToList()
RID\u APP\u字段
是通过连接RID和BusinessFriendlyName创建的匿名类型@TimSchmelter@BrianJ:不,在具体类中不能有匿名属性。添加一个属性,如:
public string RID\u APP_FIELD{get{return RID+“”+BusinessFriendlyName;}}
,或以这种方式重写
ToString
。为什么要尝试转换回应用程序类?您的对象都不是
Application
对象。它们是匿名类型的实例。做你想做的事情基本上包括做
。选择(x=>newapplication{RID=x.RID,…})
等等-手动或自动;如果您想要
应用程序
实例,为什么要切换到匿名类型?
RID\u APP\u字段
应用程序
中的属性吗?如果不是,则必须将其设为一个或以这种方式重写
到字符串
返回RID+“”+BusinessFriendlyName
。然后,您不需要创建新实例,但可以返回
applicationList。其中(条件)。ToList()
RID\u APP\u字段
是通过连接RID和BusinessFriendlyName创建的匿名类型@TimSchmelter@BrianJ:不,在具体类中不能有匿名属性。可以添加如下属性:
public string RID_APP_FIELD{get{return RID+“”+BusinessFriendlyName;}}
或以这种方式重写
ToString
。我需要返回格式为“RID+BusinessFriendlyName”的列表,以便生成的筛选列表类似于:“879898 TestAppOne”等。。您能否详细介绍如何设置上述属性?如何定义
Application
class?您需要在此处设置应用程序属性。我需要返回格式为“RID+BusinessFriendlyName”的列表,以便生成的筛选列表类似于:“879898 TestAppOne”等。。您能否详细介绍如何设置上述属性?如何定义
Application
class?您需要在此处设置应用程序属性。