标签:c linq c-4-0 sharepoint
我有一个问题,我无法绕过头.
我有一个项目的Sharepoint列表,其中包含类别.我想阅读所有类别并计算它们发生的频率.
在另一种方法中,我想采用categoryCount,将其除以票的总数并乘以100得到一个百分比.
问题是伯爵.
这是我目前的查询:
public IEnumerable<KategorieVM> GetAllCategories()
{
int counter = 0;
var result = (from t in Tickets
where t.Kategorie != Kategorie.Invalid && t.Kategorie != Kategorie.None && t.Kategorie != null
select new KategorieVM() { _name = t.Kategorie.ToString(), _val = counter++ });
return result;
}
问题是,我不能用柜台.有一个干净的解决方法吗?为计算每个类别而构建查询的选项不是有效选项.该列表有15000个Listitems并且还在增长.最后,我需要遍历每个类别并调用查询来计算大约需要3分钟的票证.
因此,必须在一个查询中计算cateogry.
任何帮助都非常感谢.
/编辑:为了清楚起见:
计数器只是一个脑力计 – 我不知道为什么我会尝试它;这会产生一个指数.我需要一种方法来计算这些15k条目中出现的“类别”的频率.
解决方法:
您可以使用GroupBy在查询本身中执行Count:
return Tickets
.Where(t => t.Kategorie != Kategorie.Invalid && t.Kategorie != Kategorie.None && t.Kategorie != null)
.GroupBy(t => t.Kategorie.ToString())
.Select(g => new KategorieVM() { _name = g.Key, _val = g.Count() });
标签:c,linq,c-4-0,sharepoint 来源: https://codeday.me/bug/20190625/1285313.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。