使用LINQ进行动态分组请看下面的例子。组子句必须是动态的。你能指导我如何实现这一目标吗?也就是说,行{r.Portfolio,r.DataType}必须动态构造。不确定如何调整博客http://jonahacquah.blogspot.com/2012/02/groupby-multiple-columns-using-dynamic.html中所示的解决方案。publicclassDecisionSupportData{publicstringPortfolio{get;放;}publicstringBucketName{get;放;}公共字符串数据类型{得到;放;}公共字符串ChildPortfolio{得到;放;}}publicvoidPopulateData(){ListlstAllDecSupp=decisionSupportDataBindingSource.DataSourceasList;列出lstRmgAmt=(从rinlstAllDecSupp.AsEnumerable()wherer.DataType=="P"grouprbynew{r.Portfolio,r.DataType}intoggselectnewDecisionSupportData{DataType=gg.Key.DataType,Portfolio=gg.Key.Portfolio,}).ToList();正如ScottGu的原始博客中提到的,DynamicLinq库似乎可以解决您的问题。只需将GroupBy扩展方法与字符串值一起使用。或者您可以深入研究他们的ExpressionParser类并查看它在做什么。以下将适用于您的示例,但如果您的实际示例更复杂,则可能无法正常工作/扩展。以上就是C#学习教程:使用LINQ进行动态群分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——//bools表示你要对哪些列进行分组boolgroupByPortfolio=true;boolgroupByDataType=true;boolgroupByBucketName=false;boolgroupByChildPortfolio=false;列出lstRmgAmt=(来自rinlstAllDecSupp.AsEnumerable()wherer.DataType=="P"grouprbynew{Portfolio=groupByrPortf.Portfolio:null,DataType=groupByDataType?r.DataType:null,BucketName=groupByBucketName?r.BucketName:null,ChildPortfolio=groupByChildPortfolio?r.ChildPortfolio:null}intoggselectnewDecisionSupportData{Portfolio=gg.TypeKey.=gg.Key.DataType,BucketName=gg.Key.BucketName,ChildPortfolio=gg.Key.ChildPortfolio}).ToList();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
