C# 如何提取Linq表达式的结果?
我的结果表达式是C# 如何提取Linq表达式的结果?,c#,linq,c#-4.0,C#,Linq,C# 4.0,我的结果表达式是 var result = dtFields.AsEnumerable().Join(dtCDGroup.AsEnumerable(), fieldList=>fieldList.Field<string>("CDGroupID"), cd=>cd.Field<string>("CDGroupID"),
var result = dtFields.AsEnumerable().Join(dtCDGroup.AsEnumerable(),
fieldList=>fieldList.Field<string>("CDGroupID"),
cd=>cd.Field<string>("CDGroupID"),
(fieldList,cd) => new
{
FieldID = fieldList.Field<string>("FieldID"),
Name = cd.Field<string>("Name"),
CDCaption = fieldList.Field<string>("CDCaption"),
Priority = ((cd.Field<string>("Priority") == null) ? 99 : cd.Field<int>("Priority")),
fldIndex = fieldList.Field<string>("fldIndex")
}).OrderBy(result => result.Priority).ThenBy(result => result.fldIndex);
var result=dtFields.AsEnumerable().Join(dtCDGroup.AsEnumerable(),
fieldList=>fieldList.Field(“CDGroupID”),
cd=>cd.Field(“CDGroupID”),
(字段列表,cd)=>新建
{
FieldID=fieldList.Field(“FieldID”),
名称=cd.字段(“名称”),
CDCaption=fieldList.Field(“CDCaption”),
优先级=((cd.Field(“Priority”)==null)?99:cd.Field(“Priority”),
fldIndex=fieldList.Field(“fldIndex”)
}).OrderBy(result=>result.Priority);
将上述结果强制转换为数组或列表会引发无效的强制转换异常。
如何提取上述表达式的结果?分别添加.ToArray()或.ToList()调用尝试添加强类型:
public class NewModule
{
public int FieldID { get; set; }
public string Name { get; set; }
public string CDCaption { get; set; }
public int Priority { get; set; }
public int fldIndex { get; set; }
}
您可以使用ToList()
而不是匿名类型,如下所示:
var result = dtFields.AsEnumerable().Join(dtCDGroup.AsEnumerable(),
fieldList=>fieldList.Field<string>("CDGroupID"),
cd=>cd.Field<string>("CDGroupID"),
(fieldList,cd) => new NewModule
{
FieldID = fieldList.Field<string>("FieldID"),
Name = cd.Field<string>("Name"),
CDCaption = fieldList.Field<string>("CDCaption"),
Priority = ((cd.Field<string>("Priority") == null) ? 99 : cd.Field<int>("Priority")),
fldIndex = fieldList.Field<string>("fldIndex")
}).OrderBy(result => result.Priority)
.ThenBy(result => result.fldIndex)
.ToList<NewModule>();
var result=dtFields.AsEnumerable().Join(dtCDGroup.AsEnumerable(),
fieldList=>fieldList.Field(“CDGroupID”),
cd=>cd.Field(“CDGroupID”),
(字段列表,cd)=>新建模块
{
FieldID=fieldList.Field(“FieldID”),
名称=cd.字段(“名称”),
CDCaption=fieldList.Field(“CDCaption”),
优先级=((cd.Field(“Priority”)==null)?99:cd.Field(“Priority”),
fldIndex=fieldList.Field(“fldIndex”)
}).OrderBy(结果=>result.Priority)
.ThenBy(result=>result.fldIndex)
.ToList();
ToArray()或.ToList()抛出无效的强制转换异常是否由查询本身引起?首先看一下:fieldList.Field(“fldIndex”)是字符串类型的fldIndex吗?