Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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# 如何通过查询获取组的类型?_C#_Linq_Group By - Fatal编程技术网

C# 如何通过查询获取组的类型?

C# 如何通过查询获取组的类型?,c#,linq,group-by,C#,Linq,Group By,我尝试获取查询结果列表并返回方法值,但得到错误 找不到类型或命名空间名称“T”(是否为“”) 缺少使用指令或程序集引用?) 我该怎么做 public IEnumerable<T> GetCountSubjectCategories() { try { IEnumerable<T> countSubjectsList = (from blog in db.BlogTables

我尝试获取查询结果列表并返回方法值,但得到错误

找不到类型或命名空间名称“T”(是否为“”) 缺少使用指令或程序集引用?)

我该怎么做

public IEnumerable<T> GetCountSubjectCategories()
{
    try
    {
        IEnumerable<T> countSubjectsList = (from blog in db.BlogTables
                                            group blog by blog.CatId
                                            into catgy
                                            select new
                                            {
                                                Id = catgy.Key,
                                                CountSubjects = catgy.Count()                                   }).ToList();
        return countSubjectsList;
    }
    catch (Exception e)
    {
        Log.AddErrorLog(e, AdakLog.Service.DataBase, "1", false, false, true);
        return null;
    }
}
public IEnumerable GetCountSubjectCategories()
{
尝试
{
IEnumerable countSubjectsList=(来自db.BlogTables中的blog
按blog.CatId对博客进行分组
变成猫
选择新的
{
Id=catgy.Key,
CountSubjects=catgy.Count()}).ToList();
返回countSubjectsList;
}
捕获(例外e)
{
Log.AddErrorLog(e,AdakLog.Service.DataBase,“1”,false,false,true);
返回null;
}
}

您应该声明一个类

public class CategorySubjects
{
    public int Id { get; set; }
    public int Subjects { get; set; }
}
然后返回一个
IEnumerable

public IEnumerable GetCountSubjectCategories()
{
尝试
{
返回(来自db.BlogTables中的blog)
按blog.CatId对博客进行分组
变成猫
选择新类别主题
{
Id=catgy.Key,
CountSubjects=catgy.Count()
};
返回countSubjectsList;
}
捕获(例外e)
{
Log.AddErrorLog(e,AdakLog.Service.DataBase,“1”,false,false,true);
返回null;
}
}
}
另一种选择是创建具有两个属性的
Tuple
或一个
struct
。在代码中使用
T
没有意义。通常,当我们必须定义一个泛型方法或一个会暴露一些泛型行为的类时,我们使用
T
。如果你想开始阅读泛型,你可以开始。

public IEnumerable<CategorySubjects> GetCountSubjectCategories()
{
    try
    {
        return (from blog in db.BlogTables
                group blog by blog.CatId
                into catgy
                select new CategorySubjects
                {
                    Id = catgy.Key,
                    CountSubjects = catgy.Count()
                };
            return countSubjectsList;
        }
        catch (Exception e)
        {
            Log.AddErrorLog(e, AdakLog.Service.DataBase, "1", false, false, true);
            return null;
        }
    }
}