Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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# Linq-将匿名类型强制转换为具体类型_C#_Asp.net_Linq - Fatal编程技术网

C# Linq-将匿名类型强制转换为具体类型

C# Linq-将匿名类型强制转换为具体类型,c#,asp.net,linq,C#,Asp.net,Linq,我正在使用以下linq声明: var suppliers = SupplierView.Select() .GroupBy(x => x.Name.Substring(0, 1).ToUpper(), (alphanumeric, suppliers) => new { Alphanumeric = alphanumeric,

我正在使用以下linq声明:

        var suppliers = SupplierView.Select()
            .GroupBy(x => x.Name.Substring(0, 1).ToUpper(),
                (alphanumeric, suppliers) => new
                {
                    Alphanumeric = alphanumeric,
                    Suppliers = suppliers.OrderBy(x => x.Name).ToList()
                })
            .OrderBy(x => x.Alphanumeric);
我想从一个方法返回它,但是要这样做,我需要使用一个具体类型而不是匿名类型

以下是混凝土类型:

public class AlphanumericSuppliers
{
    public string Alphanumeric { get; set; }
    public IOrderedEnumerable<Supplier> Suppliers { get; set; }
}
公共类字母数字供应商
{
公共字符串字母数字{get;set;}
公共或可数供应商{get;set;}
}
但是,我很难获得将匿名类型转换为具体类型的正确语法


有人建议吗?

只需创建具体类型的实例(不要求在LINQ中使用匿名类型):


*如评论中所述,要么将
供应商
更改为
IEnumerable
,要么从此处删除
ToList
调用

,这样您就知道如何创建匿名类型,但不知道如何创建命名类型的实例,真的?我知道如何按照下面的代码执行,但它会给我语法错误。那么你应该包含错误消息。除非你更改供应商的类型,否则不会编译。@Selman22 True。或者我认为删除
ToList
呼叫将有效。@Selman22-您的答案正确-如果您想让我选择答案,请发布一个答案。
var suppliers = SupplierView.Select()
        .GroupBy(x => x.Name.Substring(0, 1).ToUpper(),
            (alphanumeric, suppliers) => new AlphanumericSuppliers // concrete
            {
                Alphanumeric = alphanumeric,
                Suppliers = suppliers.OrderBy(x => x.Name).ToList() // *
            })
        .OrderBy(x => x.Alphanumeric);