0

我想从评估表中获取 moduleName 的不同值。ModuleName 是评估列表中的查找列。ModuleName 从 ModuleList 链接。请告诉我如何从评估列表中获得不同的模块名称计数?

protected void drpCoursesName_SelectedIndexChanged(object sender, EventArgs e)
{
    using (SiteEntitiesDataContext siteEntitiesDataContext = new SiteEntitiesDataContext(SPContext.Current.Site.Url))
    {
        EntityList<AssessmentItem> listItems = siteEntitiesDataContext.GetList<AssessmentItem>("Assessment");
        var distinctModuleCount = from module1 in listItems
                                  group module1 by new { module1.ModuleName }
                                  into grp
                                  select new
                                  {
                                      count1=grp.Count(),
                                  };
        int modulecount=distinctModuleCount.Count();

        foreach(var item in distinctModuleCount)
        {
            Label lbl1 = new Label();
            lbl1.Text = modulecount.ToString();
            PlaceHolderAssessment.Controls.Add(lbl1);
        }//end of for loop
    }//end of Data Context
}//end of method

提前致谢。

4

1 回答 1

0

准确解释您的目标有点困难,但我希望以下内容有所帮助。

给定一个定义为的类:

public class AssessmentItem
{
    public string ModuleName { get; set; }
}

以下代码初始化和查询这些类的集合:

var items = new List<AssessmentItem>
    {
        new AssessmentItem { ModuleName = "Test 1" },
        new AssessmentItem { ModuleName = "Test 1" },
        new AssessmentItem { ModuleName = "Test 2" },
        new AssessmentItem { ModuleName = "Test 2" },
        new AssessmentItem { ModuleName = "Test 2" }
    };

var grouped = items.GroupBy(x => x.ModuleName);
Debug.WriteLine("Distinct modules {0}", grouped.Count());
foreach (var group in grouped)
{
    Debug.WriteLine("{0} has {1} entries", group.Key, group.Count());
}

您将收到以下输出:

Distinct modules 2
Test 1 has 2 entries
Test 2 has 3 entries
于 2013-02-12T12:23:48.497 回答