0

私の結果式は

 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);

上記の結果を配列またはリストにキャストすると、無効なキャスト例外がスローされます。上記の式の結果をどのように抽出できますか?

4

2 に答える 2

2

.ToArray() または .ToList() 呼び出しをそれぞれ追加します

于 2012-04-17T10:29:00.327 に答える
0

強く型付けされた型を追加してみてください。

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<NewModule>()匿名タイプの代わりに、次のように使用できます。

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>();
于 2012-04-17T10:41:54.720 に答える